Error occurred while starting Jetty - javax.servlet.ServletException: org.glassfish.jersey.servlet.ServletContainer in Java11 - java-11

Trying to write a simple rest web service using Embedded Jetty server in Java 11. While starting Embedded Jetty server in Java 11 causing this exception.
But same code is working in Java 8
Exception
11:41:18 PM: Executing task ':EmbeddedJettyService.main()'...
Task :compileJava
Task :processResources NO-SOURCE
Task :classes
Task :EmbeddedJettyService.main()
<<<<< Starting Embedded Jetty Service >>>>>
Error occurred while starting Jettyjavax.servlet.ServletException: org.glassfish.jersey.servlet.ServletContainer-52aa2946#5a84fc94==org.glassfish.jersey.servlet.ServletContainer,jsp=null,order=0,inst=false
BUILD SUCCESSFUL in 1s
2 actionable tasks: 2 executed
log4j:WARN No appenders could be found for logger (org.eclipse.jetty.util.log).
log4j:WARN Please initialize the log4j system properly.
log4j:WARN See http://logging.apache.org/log4j/1.2/faq.html#noconfig for more info.
11:41:25 PM: Task execution finished ':EmbeddedJettyService.main()'.
build.gradle
plugins {
id 'java'
id 'com.github.johnrengelman.shadow' version '5.2.0'
}
repositories {
jcenter()
}
sourceCompatibility = 11
repositories {
jcenter()
mavenCentral()
}
dependencies {
implementation "org.slf4j:slf4j-api:1.7.25"
implementation 'org.slf4j:slf4j-log4j12:1.7.25'
implementation group: 'org.eclipse.jetty', name: 'jetty-server', version: '9.4.9.v20180320'
implementation group: 'org.eclipse.jetty', name: 'jetty-servlet', version: '9.4.9.v20180320'
implementation group: 'org.glassfish.jersey.containers', name: 'jersey-container-servlet-core', version: '2.25.1'
implementation group: 'org.glassfish.jersey.media', name: 'jersey-media-json-jackson', version: '2.25.1'
implementation group: 'com.sun.jersey', name: 'jersey-json', version: '1.19.4'
implementation group: 'com.sun.jersey', name: 'jersey-servlet', version: '1.19.4'
}
Main Class:
package com.test.main;
import org.eclipse.jetty.server.Server;
import org.eclipse.jetty.servlet.ServletContextHandler;
import org.eclipse.jetty.servlet.ServletHolder;
import org.glassfish.jersey.servlet.ServletContainer;
public class EmbeddedJettyService {
public static void main(String[] args) {
startServer();
}
public static void startServer() {
System.out.println("<<<<< Starting Embedded Jetty Service >>>>>");
Server server = new Server(8080);
ServletContextHandler servletContextHandler = new ServletContextHandler(ServletContextHandler.NO_SESSIONS);
servletContextHandler.setContextPath("/");
server.setHandler(servletContextHandler);
ServletHolder servletHolder =
servletContextHandler.addServlet(ServletContainer.class, "/controller/*");
/* servlet init order - 0 refers init On Startup */
servletHolder.setInitOrder(0);
/* servlet init order - 0 refers init On Startup */
servletHolder.setInitOrder(0);
servletHolder.setInitParameter("jersey.config.server.provider.packages",
"com.test.resource");
try {
server.start();
server.join();
} catch (Exception ex) {
System.out.println("Error occurred while starting Jetty" +ex);
}
finally {
try {
server.stop();
server.destroy();
} catch (Exception e) {
System.out.println("Error during server starting " +e);
}
}
}
}
Resource:
package com.test.resource;
import javax.ws.rs.GET;
import javax.ws.rs.Path;
import javax.ws.rs.ApplicationPath;
import javax.ws.rs.core.Application;
#Path("/health")
public class HelloResource {
#GET
public String JettyPocResponse() {
return "Hello from Embedded Jetty!!!";
}
}

Related

Jenkins ignores the exit code 1 from Gradle run task

Jenkins 2.89.3
Gradle 3.5
I'm running a build using a pipeline:
node {
try {
stage('Fetch code') {
echo 'Pulling the Code...'
checkout scm: [$class : 'GitSCM',
branches : [[name: '*/$GIT_CLOUD_BRANCH']],
browser : [$class: 'GitLab', repoUrl: cloudRepo, version: gitlabVersion],
doGenerateSubmoduleConfigurations: false,
submoduleCfg : [],
userRemoteConfigs : scm.userRemoteConfigs]
}
wrap([$class: 'Xvfb', screen: '1920x1080x24']) {
dir('BUILD') {
stage('Clean DB and old reports') {
sh '''chmod +x cleanup_old_reports.sh
./cleanup_old_reports.sh $PWD/../../builds $BUILD_NUMBER'''
}
stage('Build the application') {
sh '''chmod +x application.sh
./application.sh -P${PROJECT}'''
}
stage('Run tests') {
sh 'gradle clean run -P${PROJECT} -P${RUN_TYPE}'
}
}
}
stage('Generate reports') {
allure([includeProperties: false,
jdk : '',
properties : [],
reportBuildPolicy: 'ALWAYS',
results : [[path: 'ExaTAGS/TagsRunner/allure-results']]])
archive 'catalina.log'
}
} catch (Exception ex) {
currentBuild.result = "FAILURE"
println "in catch currentBuild.result: " + currentBuild.result
throw ex
} finally {
notifyBuild(currentBuild.result)
}
}
The stage 'Run tests' executes a gradle task RUN. In a case if there are any failed tests the main method of test runner throws an exception and RUN task returns exit code 1.
But despite this stage is marked as FAILED, the whole build is SUCCESSFUL:
I believe that RUN task actually does not throw an exception, cause I do not see the output I make in catch block in the pipeline script. But it really returns exit code different from 0, why does Jenkins ignore it? And what is the appropriate way to force Jenkins fail the whole build if there are any of failed stages?
UPDATE
build.gradle file:
group 'project'
version '1.0'
apply plugin: 'application'
def aspectjVersion = "1.8.7"
mainClassName = 'tags.runner.TestManager'
applicationDefaultJvmArgs = ["-javaagent:APP_HOME_PLACEHOLDER/lib/aspectjweaver-${aspectjVersion}.jar"]
dependencies {
compile "org.aspectj:aspectjweaver:${aspectjVersion}"
}
def weaver = configurations.compile.find { it.name.contains("aspectjweaver") }
run {
doFirst {
jvmArgs = jvmArgs << "-javaagent:$weaver"
if (project.hasProperty('cloud')) {
args("cloud")
}
}
}
And the main method of TestManager.
runTests() throws the TestException if the count of failed tests is more than 0:
class TestManager {
static void main(String[] args) {
try {
runTests()
} catch (TestException ex) {
throw ex
} catch (Exception e) {
e.printStackTrace()
System.in.read()
}
}
}

Pending steps with jbehave

I am getting pending steps for jbehave stories and please find the configuration details below: All the story steps are correct to my knowledge.I am not getting where i am going wrong in configuration. Could you please help me.
build.gradle:
def buildNumber = System.getProperty('buildNumber') ?: '0'
def buildVersion = '1.0.0-' + buildNumber
version = buildVersion
apply plugin: 'groovy'
apply plugin: 'java'
apply plugin: 'maven'
repositories {
maven { url 'http://repo1.maven.org/maven2/' }
maven { url 'https://mvnrepository.com/' }
maven {url 'https://mvnrepository.com/artifact/org.jbehave'}
mavenCentral()
}
dependencies {
compile 'com.google.guava:guava:18.0'
compile group: 'com.fasterxml.jackson.core', name: 'jackson-databind', version: '2.8.8.1'
compile group: 'org.codehaus.jackson', name: 'jackson-core-asl', version: '1.1.0'
testCompile group: 'junit', name: 'junit', version: '4.11'
compile 'org.codehaus.groovy:groovy-all:2.3.11'
compile('org.springframework:spring-core:4.0.5.RELEASE') {
exclude(module: 'commons-logging')
}
compile(group: 'org.jbehave.web', name: 'jbehave-web-selenium', version: '4.0-beta-1') {
exclude(module: 'selenium-remote-control')
exclude(module: 'selenium-java')
exclude(module: 'jbehave-core')
}
compile 'javax.servlet:javax.servlet-api:3.0.1'
compile 'org.springframework:spring-webmvc:4.0.5.RELEASE'
compile 'org.springframework:spring-jdbc:4.0.5.RELEASE'
compile 'org.springframework:spring-test:4.0.5.RELEASE'
compile 'io.springfox:springfox-spring-web:2.2.2'
compile 'io.springfox:springfox-swagger-ui:2.2.2'
compile 'io.springfox:springfox-swagger2:2.2.2'
compile 'com.googlecode.json-simple:json-simple:1.1.1'
compile 'org.jbehave.site:jbehave-site-resources:3.1.1'
compile 'org.jbehave:jbehave-spring:3.9.3'
compile 'org.jbehave:jbehave-core:4.1.3'
compile 'commons-dbcp:commons-dbcp:1.2.2'
compile 'org.slf4j:slf4j-api:1.7.6'
compile 'com.jcraft:jsch:0.1.53'
compile 'org.json:json:20140107'
compile 'log4j:log4j:1.2.11'
compile 'org.assertj:assertj-core:2.3.0'
compile group: 'commons-io', name: 'commons-io', version: '2.5'
// https://mvnrepository.com/artifact/org.seleniumhq.selenium/selenium-chrome-driver
compile group: 'org.seleniumhq.selenium', name: 'selenium-chrome-driver', version: '2.33.0'
compile group: 'org.seleniumhq.selenium', name: 'selenium-server', version: '3.7.1'
// https://mvnrepository.com/artifact/org.seleniumhq.selenium/selenium-java
compile group: 'org.seleniumhq.selenium', name: 'selenium-java', version: '3.7.1'
compile group: 'org.picocontainer', name: 'picocontainer', version: '2.15'
compile group: 'joda-time', name: 'joda-time', version: '2.8.1'
compile group: 'org.apache.commons', name: 'commons-lang3', version: '3.0'
compile group: 'commons-collections', name: 'commons-collections', version: '3.2'
compile group: 'org.apache.httpcomponents', name: 'httpclient', version:'4.3.1'
compile group: 'org.codehaus.plexus', name: 'plexus-utils', version:'3.0.22'
compile group: 'commons-lang', name: 'commons-lang', version: '2.3'
// testCompile 'org.jbehave:jbehave-core:3.9.3'
compile 'org.jbehave.site:jbehave-site-resources:3.1.1:#zip'
}
sourceSets.test.resources.srcDir 'src/test/java'
/** userDefined task to copy the srories from /src/main/stories into build/classes/test/stories*/
task copyStories(type: Copy) {
from 'src/main/resources' into "${buildDir}/classes/test"
from 'src/main/stories' into "${buildDir}/classes/test/stories"
}
sourceSets {
test {
java {
srcDir "src/main/java"
}
resources {
srcDir "src/main/resources"
}
}
}
/* This is to copy the system properties from gradle available to Junit test classes*/
test {
systemProperty "metaFilters", System.getProperty("metaFilters", "")
doFirst {
copy {
from(zipTree(jarPath("jbehave-core"))) {
include "style/*"
}
into("build/reports/jbehave/view")
}
copy {
from(zipTree(jarPath("jbehave-site-resources"))) {
include "js/**/*"
include "style/**/*"
include "images/*"
}
into("build/reports/jbehave/view")
}
}
systemProperties System.getProperties()
dependsOn([clean,copyStories])
}
def jarPath(String jarName) {
configurations.testCompile.find({ it.name.startsWith(jarName) }).absolutePath
}
Jbheave extending junitstories class as
public class JbehaveStories extends JUnitStories{
private static final String _STORIES_SEPARATOR = ",";
public static HtmlOutput qmoHtmlOutput;
public static StoryData storyData;
public static List<String> storyToExecute = null;
static CrossReference crossReference = new CrossReference().withJsonOnly().withOutputAfterEachStory(true);
Logger logger = Logger.getLogger(JbehaveStories.class);
Logger log = Logger.getLogger(JbehaveStories.class);
ContextView contextView = new LocalFrameContextView().sized(640, 120);
SeleniumContext seleniumContext = new SeleniumContext();
private org.jbehave.web.selenium.WebDriverProvider driverProvider = new org.jbehave.web.selenium.PropertyWebDriverProvider();
private WebDriverSteps lifecycleSteps = new PerStoriesWebDriverSteps(driverProvider);
// SeleniumStepMonitor stepMonitor = new SeleniumStepMonitor(contextView, seleniumContext,crossReference.getStepMonitor());
Format[] formats = new Format[]{new SeleniumContextOutput(seleniumContext), CONSOLE, XML, HTML};
StoryReporterBuilder reporterBuilder = new StoryReporterBuilder(storyData)
.withCodeLocation(codeLocationFromClass(WebJbehaveStories.class)).withFailureTrace(true)
.withFailureTraceCompression(true).withDefaultFormats().withFormats(formats)
.withCrossReference(crossReference);
private ApplicationContext applicationContext;
public WebJbehaveStories() {
super();
try {
System.setProperty("webdriver.chrome.driver", "src/main/resources/drivers/chromedriver.exe");
storyData = new StoryData();
// String path = BNSFWebJbehaveStories.class.getProtectionDomain().getCodeSource().getLocation().getPath() + "stories/log4j.properties";
// PropertyConfigurator.configure(path);
} catch (Exception e) {
e.printStackTrace();
}
}
#Override
public Configuration configuration() {
new WebDriverScreenshotOnFailure(driverProvider, new StoryReporterBuilder());
Class<? extends Embeddable> embeddableClass = this.getClass();
ParameterConverters parameterConverters = new ParameterConverters();
LoadFromClasspath resourceLoader = new LoadFromClasspath(embeddableClass);
TableTransformers tableTranformers = new TableTransformers();
ExamplesTableFactory examplesTableFactory = new ExamplesTableFactory(new LocalizedKeywords(), resourceLoader,
parameterConverters, tableTranformers);
parameterConverters.addConverters(new ParameterConverters.DateConverter(new SimpleDateFormat("yyyy-MM-dd")),
new ParameterConverters.ExamplesTableConverter(examplesTableFactory));
return new SeleniumConfiguration().useSeleniumContext(seleniumContext)
.usePendingStepStrategy(new FailingUponPendingStep())
.useStoryControls(new StoryControls().doResetStateBeforeScenario(true))
.useStoryLoader(new LoadFromClasspath(WebJbehaveStories.class))
.useStoryReporterBuilder(new StoryReporterBuilder())
.useStoryParser(new RegexStoryParser(examplesTableFactory))
.useStoryReporterBuilder(new StoryReporterBuilder(storyData)
.withCodeLocation(CodeLocations.codeLocationFromPath(getClassPath()))
.withCrossReference(crossReference)
.withFormats(Format.CONSOLE, Format.HTML, XML))
.useParameterControls(new ParameterControls()
.useDelimiterNamedParameters(true))
.useParameterConverters(parameterConverters)
.useStepPatternParser(new RegexPrefixCapturingPatternParser()).doDryRun(true);
}
private List<String> getMetaFilters() {
String metaFilterStr = System.getProperty("meta.filter");
metaFilterStr = metaFilterStr == null ? "" : metaFilterStr;
List<String> metaFilters = Arrays.asList(metaFilterStr.split(","));
log.info("**** MetaFilters = " + metaFilters);
return metaFilters;
}
private String getClassPath() {
URL fileUrl = codeLocationFromClass(this.getClass());
String classpath = getPathFromURL(fileUrl);
System.out.println("getClassPath classpath = " + classpath);
// class may come from a jar file
if (classpath.endsWith(".jar!")) {
int idx = classpath.lastIndexOf('.');
classpath = classpath.substring(0, idx);
}
return classpath;
}
#Override
public InjectableStepsFactory stepsFactory() {
if (this.applicationContext == null) {
AnnotationConfigApplicationContext applicationContext = new AnnotationConfigApplicationContext(WebJbehaveStories.class);
this.applicationContext = applicationContext;
}
return new SpringStepsFactory(configuration(), this.applicationContext);
}
#Override
public void run() throws Throwable {
Embedder embedder = configuredEmbedder();
embedder.embedderControls().useStoryTimeoutInSecs(450000);
embedder.useMetaFilters(getMetaFilters());
// These should be enabled so that even though the stories fail it wont go to catch method. Its useful when running multiple scenarios
embedder.embedderControls().doIgnoreFailureInStories(true);
embedder.embedderControls().doIgnoreFailureInView(false);
embedder.embedderControls().doGenerateViewAfterStories(true);
embedder.configuration().storyControls().doIgnoreMetaFiltersIfGivenStory(true);
List<String> storyPaths = storyPaths();
try {
embedder.runStoriesAsPaths(storyPaths);
} catch (Exception e) {
e.printStackTrace();
Loggers.CONSOLE_LOGGER.error("STORY FAILED DUE TO:");
e.printStackTrace(System.err);
Loggers.FILE_LOGGER.error("STORY FAILED DUE TO:");
e.printStackTrace(System.err);
Loggers.CONSOLE_LOGGER.info("Driver instance is closing");
Loggers.FILE_LOGGER.info("Driver instance is closing");
embedder.generateCrossReference();
throw new Throwable(e.fillInStackTrace());
} finally {
try {
Loggers.CONSOLE_LOGGER.info("Driver instance is closing");
driver.quit();
Loggers.FILE_LOGGER.info("Driver instance is closing");
} catch (Exception e) {
System.out.println("Issue in closing driver instance in run method: " + e.getMessage());// Wantedly not caught the exception
}
embedder.generateCrossReference();
}
}
public String getStoryFromStoryPaths(String storyName, List<String> storyPaths) {
for (String story : storyPaths) {
System.out.println("story = " + story);
int stroryLength = story.split("/").length;
if (story.split("/")[stroryLength - 1].equalsIgnoreCase(storyName)) return story;
}
return "";
}
#Override
protected List<String> storyPaths() {
final List<String> globList = new ArrayList<String>();
final String[] globs = storyFilter().split(_STORIES_SEPARATOR);
for (final String story : globs) {
globList.add("**/*" + story + (story.endsWith(".story") ? "" : ".story"));
}
log.info("******************************************************************************");
log.info("**** globList = " + globList);
log.info("******************************************************************************");
String classpath = getClassPath();
log.info("classpath=" + classpath);
List<String> paths = new StoryFinder().findPaths(classpath, globList, null);
log.info("**** story paths = " + paths.toString());
return paths;
}
private String storyFilter() {
String storyFilter = System.getProperty("story.filter");
if (storyFilter == null) {
storyFilter = "";
}
return storyFilter;
}
public String captureReportName() {
String storyName = null;
String fileNames[] = reporterBuilder.outputDirectory().list();
for (int i = 0; i < fileNames.length; i++) {
if (fileNames[i].contains("html") & !fileNames[i].contains("BeforeStories")) {
String name[] = fileNames[i].split(".html");
storyName = name[0];
}
}
return storyName;
}
}
The error i am getting is as follows:
(stories/HomePage.story)
Narrative:
As a user
I want to perform an action
So that I can achieve a business goal
Scenario: scenario description
Given I enter login details (PENDING)
#Given("I enter login details")
#Pending
public void givenIEnterLoginDetails() {
// PENDING
}
Failed to run story stories/HomePage.story
org.jbehave.core.failures.PendingStepsFound: [Given I enter login details]
HomePage.story
Meta:
Narrative:
As a user
I want to perform an action
So that I can achieve a business goal
Scenario: scenario description
Given I enter login details
public class HomePageSteps {
#Autowired HomePage homePage;
#When("I enter login details")
public void enter() {
try {
homePage.enterLoginDetails();
} catch (Exception e) {
e.printStackTrace(System.err);
}
}
#Given("I enter login details")
public void enterx() {
try {
homePage.enterLoginDetails();
} catch (Exception e) {
e.printStackTrace(System.err);
}
}
}

Unable to cleanup Infinispan DefaultCacheManager in state FAILED

I am getting this Exception when trying to restart CacheManager, that failed to start.
Caused by: org.infinispan.jmx.JmxDomainConflictException: ISPN000034: There's already a JMX MBean instance type=CacheManager,name="DefaultCacheManager" already registered under 'org.infinispan' JMX domain. If you want to allow multiple instances configured with same JMX domain enable 'allowDuplicateDomains' attribute in 'globalJmxStatistics' config element
at org.infinispan.jmx.JmxUtil.buildJmxDomain(JmxUtil.java:53)
I think it's a bug, but am I correct?
The version used is 9.0.0.Final.
EDIT
The error can be seen using this code snippet.
import org.infinispan.configuration.cache.*;
import org.infinispan.configuration.global.*;
import org.infinispan.manager.*;
class Main {
public static void main(String[] args) {
System.out.println("Starting");
GlobalConfigurationBuilder global = GlobalConfigurationBuilder.defaultClusteredBuilder();
global.transport()
.clusterName("discover-service-poc")
.initialClusterSize(3);
ConfigurationBuilder builder = new ConfigurationBuilder();
builder.clustering().cacheMode(CacheMode.REPL_SYNC);
DefaultCacheManager cacheManager = new DefaultCacheManager(global.build(), builder.build(), false);
try {
System.out.println("Starting cacheManger first time.");
cacheManager.start();
} catch (Exception e) {
e.printStackTrace();
cacheManager.stop();
}
try {
System.out.println("Starting cacheManger second time.");
System.out.println("startAllowed: " + cacheManager.getStatus().startAllowed());
cacheManager.start();
System.out.println("Nothing happening because in failed state");
System.out.println("startAllowed: " + cacheManager.getStatus().startAllowed());
} catch (Exception e) {
e.printStackTrace();
cacheManager.stop();
}
cacheManager = new DefaultCacheManager(global.build(), builder.build(), false);
cacheManager.start();
}
}

UserPrivilegedException, while creating a directory in HDFS as a specific user, through JAVA

I a'm using CDH 4.7. I am trying to create a folder in HDFS in /user/cloudera. But the UserPrivilegedException is thrown. Below is my code (#copied)
public static void main(String args[]) {
try {
UserGroupInformation ugi =
UserGroupInformation.createProxyUser("cloudera", UserGroupInformation.getLoginUser());
System.out.println(ugi.getUserName());
ugi.doAs(new PrivilegedExceptionAction<Void>() {
public Void run() throws Exception {
System.out.println("aaa");
Configuration conf = new Configuration();
conf.set("fs.defaultFS", "hdfs://localhost.localdomain:8020/user/cloudera");
conf.set("hadoop.job.ugi", "cloudera");
FileSystem fs = FileSystem.get(conf);
fs.createNewFile(new Path("/user/cloudera/test"));
Path path = new Path("/user/cloudera/Hbasesyntax.txt");
FileStatus[] status = fs.listStatus(path);
for(int i=0;i<status.length;i++){
System.out.println(status[i].getPath());
}
return null;
}
});
} catch (Exception e) {
e.printStackTrace();
}
}
Then, I even tried accessing the file (Hbasesyntax.txt) which I -put through the terminal. But, not able to get the file information from that too. Am I missing anything.
Below is the exception thrown:
Feb 23, 2015 1:18:27 AM org.apache.hadoop.security.UserGroupInformation doAs
SEVERE: **PriviledgedActionException as:cloudera via cloudera cause:java.io.IOException: Mkdirs failed to create /user/cloudera
java.io.IOException: Mkdirs failed to create /user/cloudera
at** org.apache.hadoop.fs.ChecksumFileSystem.create(ChecksumFileSystem.java:378)
at org.apache.hadoop.fs.ChecksumFileSystem.create(ChecksumFileSystem.java:364)
at org.apache.hadoop.fs.FileSystem.create(FileSystem.java:564)
at org.apache.hadoop.fs.FileSystem.create(FileSystem.java:545)
at org.apache.hadoop.fs.FileSystem.create(FileSystem.java:507)
at org.apache.hadoop.fs.FileSystem.createNewFile(FileSystem.java:647)
at HDFSFileOperations.GetIntoFS$1.run(GetIntoFS.java:32)
at HDFSFileOperations.GetIntoFS$1.run(GetIntoFS.java:1)
at java.security.AccessController.doPrivileged(Native Method)
at javax.security.auth.Subject.doAs(Subject.java:396)
at org.apache.hadoop.security.UserGroupInformation.doAs(UserGroupInformation.java:1 190)
at HDFSFileOperations.GetIntoFS.main(GetIntoFS.java:21)

INSERT from servlet throws java.lang.ClassNotFoundException: com.microsoft.sqlserver.jdbc.SQLServerDriver

I am using the code below to connect to a SQL Server 2005 database from a servlet. But it is throwing the following exception:
java.lang.ClassNotFoundException: com.microsoft.sqlserver.jdbc.SQLServerDriver
Code Snippet:
import java.sql.*;
import java.io.*;
import javax.servlet.*;
import javax.servlet.http.*;
public class InsertServlet extends HttpServlet
{
public void doPost(HttpServletRequest request,HttpServletResponse response)
throws ServletException,IOException
{
doGet(request,response);
}
public void doGet(HttpServletRequest request,HttpServletResponse response)
throws ServletException,IOException
{
response.setContentType("text/html");
PrintWriter pw=response.getWriter();
EmpDetailBean empdetailbean=new EmpDetailBean();
Connection con=null;
PreparedStatement pstmt2=null;
//ResultSet rs=null;
String employeecode=request.getParameter("employeecode");
pw.println(employeecode);
empdetailbean.setEmployeecode(employeecode);
try
{ //String emp_code=(String)session.getAttribute("empcode");
//Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
//String url = "jdbc:sqlserver://localhost;" +
// "databaseName=test;user=sa;password= ;";
//con=DriverManager.getConnection("Jdbc:Odbc:leave1");
con=DriverManager.getConnection("jdbc:sqlserver://10.217.7.3;databaseName=test;user=sa;password=123;");
String query1="insert into leavetype(dbo.empcode) values(?)";
pstmt2=con.prepareStatement(query1);
pstmt2.setString(1,empdetailbean.getEmployeecode());
int k=pstmt2.executeUpdate();
System.out.println(k);
pstmt2.close();
}
catch(Exception e)
{ pw.println("exception"+ e);
}
}
}
the log file shows
May 2, 2012 11:34:19 AM org.apache.catalina.core.ApplicationContext log
INFO: ContextListener: contextInitialized()
May 2, 2012 11:34:19 AM org.apache.catalina.core.ApplicationContext log
INFO: SessionListener: contextInitialized()
If you want to use com.microsoft.sqlserver.jdbc.SQLServerDriver as Driver then sqljdbc.jar is required to be
present in your classpath which is WEB-INF\lib.
If you want to user Jtds Driver Check this link for Driver and databse URL
Seems that the Jar file for the JDBC Connectivity is missing from the war file that you have deployed. could you please ensure that the lib files are getting packaged with war file properly