I have already looked at many tutorials, but I can't get my simple JAX-RS application to work. Tomcat always returns Error 404.
The Application to get Classes:
package api;
import java.util.HashSet;
import java.util.Set;
import javax.ws.rs.ApplicationPath;
import javax.ws.rs.core.Application;
#ApplicationPath("/resources")
public class MyApplication extends Application {
// All request scoped resources and providers
#Override
public Set<Class<?>> getClasses() {
Set<Class<?>> classes = new HashSet<>();
classes.add(AuthenticationEndpoint.class);
return classes;
}
}
My JAX-RS file:
package api;
#Path("/hello")
public class AuthenticationEndpoint {
#GET
public Response getUser() {
return Response.status(200).entity("getUser is called").build();
}
}
web.xml
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://xmlns.jcp.org/xml/ns/javaee" xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd" version="3.1">
<display-name>MSM-Master</display-name>
<welcome-file-list>
<welcome-file>index.html</welcome-file>
<welcome-file>index.htm</welcome-file>
<welcome-file>index.jsp</welcome-file>
<welcome-file>default.html</welcome-file>
<welcome-file>default.htm</welcome-file>
<welcome-file>default.jsp</welcome-file>
</welcome-file-list>
<servlet>
<servlet-name>MyApplication</servlet-name>
<servlet-class>org.glassfish.jersey.servlet.ServletContainer</servlet-class>
<init-param>
<param-name>jersey.config.server.provider.packages</param-name>
<param-value>api</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>MyApplication</servlet-name>
<url-pattern>/resources</url-pattern>
</servlet-mapping>
</web-app>
Under "Web Project Settings" my Context root is: "MSM-Master"
The url I tried to call was:
http://localhost:8080/MSM-Master/resources/hello/
Edit:
added Tomcat Console output:
Dez 14, 2017 4:32:39 PM org.apache.tomcat.util.digester.SetPropertiesRule begin
WARNUNG: [SetPropertiesRule]{Server/Service/Engine/Host/Context} Setting property 'source' to 'org.eclipse.jst.jee.server:MSM-Master' did not find a matching property.
Dez 14, 2017 4:32:39 PM org.apache.catalina.startup.VersionLoggerListener log
INFORMATION: Server version: Apache Tomcat/8.0.30
Dez 14, 2017 4:32:39 PM org.apache.catalina.startup.VersionLoggerListener log
INFORMATION: Server built: Dec 1 2015 22:30:46 UTC
Dez 14, 2017 4:32:39 PM org.apache.catalina.startup.VersionLoggerListener log
INFORMATION: Server number: 8.0.30.0
Dez 14, 2017 4:32:39 PM org.apache.catalina.startup.VersionLoggerListener log
INFORMATION: OS Name: Windows 7
Dez 14, 2017 4:32:39 PM org.apache.catalina.startup.VersionLoggerListener log
INFORMATION: OS Version: 6.1
Dez 14, 2017 4:32:39 PM org.apache.catalina.startup.VersionLoggerListener log
INFORMATION: Architecture: amd64
Dez 14, 2017 4:32:39 PM org.apache.catalina.startup.VersionLoggerListener log
INFORMATION: Java Home: C:\Program Files\Java\jre1.8.0_66
Dez 14, 2017 4:32:39 PM org.apache.catalina.startup.VersionLoggerListener log
INFORMATION: JVM Version: 1.8.0_66-b18
Dez 14, 2017 4:32:39 PM org.apache.catalina.startup.VersionLoggerListener log
INFORMATION: JVM Vendor: Oracle Corporation
Dez 14, 2017 4:32:39 PM org.apache.catalina.startup.VersionLoggerListener log
INFORMATION: CATALINA_BASE: C:\Users\u016975\workspace\.metadata\.plugins\org.eclipse.wst.server.core\tmp0
Dez 14, 2017 4:32:39 PM org.apache.catalina.startup.VersionLoggerListener log
INFORMATION: CATALINA_HOME: C:\Program Files\Apache Software Foundation\Tomcat 8.0
Dez 14, 2017 4:32:39 PM org.apache.catalina.startup.VersionLoggerListener log
INFORMATION: Command line argument: -Dcatalina.base=C:\Users\u016975\workspace\.metadata\.plugins\org.eclipse.wst.server.core\tmp0
Dez 14, 2017 4:32:39 PM org.apache.catalina.startup.VersionLoggerListener log
INFORMATION: Command line argument: -Dcatalina.home=C:\Program Files\Apache Software Foundation\Tomcat 8.0
Dez 14, 2017 4:32:39 PM org.apache.catalina.startup.VersionLoggerListener log
INFORMATION: Command line argument: -Dwtp.deploy=C:\Users\u016975\workspace\.metadata\.plugins\org.eclipse.wst.server.core\tmp0\wtpwebapps
Dez 14, 2017 4:32:39 PM org.apache.catalina.startup.VersionLoggerListener log
INFORMATION: Command line argument: -Djava.endorsed.dirs=C:\Program Files\Apache Software Foundation\Tomcat 8.0\endorsed
Dez 14, 2017 4:32:39 PM org.apache.catalina.startup.VersionLoggerListener log
INFORMATION: Command line argument: -Dfile.encoding=Cp1252
Dez 14, 2017 4:32:39 PM org.apache.catalina.core.AprLifecycleListener lifecycleEvent
INFORMATION: The APR based Apache Tomcat Native library which allows optimal performance in production environments was not found on the java.library.path: C:\Program Files\Java\jre1.8.0_66\bin;C:\windows\Sun\Java\bin;C:\windows\system32;C:\windows;C:/Program Files/Java/jre1.8.0_66/bin/server;C:/Program Files/Java/jre1.8.0_66/bin;C:/Program Files/Java/jre1.8.0_66/lib/amd64;C:\ProgramData\Oracle\Java\javapath;C:\Program Files (x86)\Java\jdk1.8.0_66\bin;C:\Program Files\Git\cmd;C:\Program Files\Microsoft SQL Server\130\Tools\Binn\;C:\Users\u016975\AppData\Roaming\npm\;C:\Users\u016975\apache-ant-1.9.7\bin;C:\Users\u016975\AppData\Local\Android\android-sdk\tools;C:\Users\u016975\AppData\Local\Android\android-sdk\platform-tools;C:\windows\system32; C:\windows; C:\windows\System32\Wbem;C:\Applications\Atlassian\atlassian-plugin-sdk-6.2.14\bin;C:\Users\u016975\AppData\Local\Apps\cURL\bin;C:\Applications\Atlassian\atlassian-plugin-sdk-6.2.15\bin;node_modules\npm;C:\Program Files\nodejs\;C:\Users\u016975\apache-ant-1.9.7\bin;C:\Users\u016975\AppData\Local\Android\android-sdk\tools;C:\Users\u016975\AppData\Local\Android\android-sdk\platform-tools;C:\windows\system32; C:\windows; C:\windows\System32\Wbem;C:\Applications\Atlassian\atlassian-plugin-sdk-6.2.14\bin;C:\Users\u016975\AppData\Local\Apps\cURL\bin;C:\Applications\Atlassian\atlassian-plugin-sdk-6.2.15\bin;node_modules\npm;C:\Users\u016975\AppData\Roaming\npm;C:\Program Files\Microsoft VS Code\bin;C:\Users\u016975\Downloads\eclipse-jee-mars-1-win32-x86_64\eclipse;;.
Dez 14, 2017 4:32:39 PM org.apache.coyote.AbstractProtocol init
INFORMATION: Initializing ProtocolHandler ["http-nio-8080"]
Dez 14, 2017 4:32:39 PM org.apache.tomcat.util.net.NioSelectorPool getSharedSelector
INFORMATION: Using a shared selector for servlet write/read
Dez 14, 2017 4:32:39 PM org.apache.coyote.AbstractProtocol init
INFORMATION: Initializing ProtocolHandler ["ajp-nio-8009"]
Dez 14, 2017 4:32:39 PM org.apache.tomcat.util.net.NioSelectorPool getSharedSelector
INFORMATION: Using a shared selector for servlet write/read
Dez 14, 2017 4:32:39 PM org.apache.catalina.startup.Catalina load
INFORMATION: Initialization processed in 621 ms
Dez 14, 2017 4:32:39 PM org.apache.catalina.core.StandardService startInternal
INFORMATION: Starting service Catalina
Dez 14, 2017 4:32:39 PM org.apache.catalina.core.StandardEngine startInternal
INFORMATION: Starting Servlet Engine: Apache Tomcat/8.0.30
Dez 14, 2017 4:32:46 PM org.apache.jasper.servlet.TldScanner scanJars
INFORMATION: At least one JAR was scanned for TLDs yet contained no TLDs. Enable debug logging for this logger for a complete list of JARs that were scanned but no TLDs were found in them. Skipping unneeded JARs during scanning can improve startup time and JSP compilation time.
Dez 14, 2017 4:32:46 PM org.apache.catalina.core.StandardContext startInternal
SCHWERWIEGEND: Error during ServletContainerInitializer processing
javax.servlet.ServletException: java.lang.InstantiationException: org.glassfish.tyrus.server.TyrusServerConfiguration
at org.apache.tomcat.websocket.server.WsSci.onStartup(WsSci.java:88)
at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5244)
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)
at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1408)
at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1398)
at java.util.concurrent.FutureTask.run(Unknown Source)
at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
at java.lang.Thread.run(Unknown Source)
Caused by: java.lang.InstantiationException: org.glassfish.tyrus.server.TyrusServerConfiguration
at java.lang.Class.newInstance(Unknown Source)
at org.apache.tomcat.websocket.server.WsSci.onStartup(WsSci.java:74)
... 8 more
Caused by: java.lang.NoSuchMethodException: org.glassfish.tyrus.server.TyrusServerConfiguration.<init>()
at java.lang.Class.getConstructor0(Unknown Source)
... 10 more
Dez 14, 2017 4:32:46 PM org.apache.catalina.core.StandardContext startInternal
SCHWERWIEGEND: Context [/MSM-Master] startup failed due to previous errors
Dez 14, 2017 4:32:46 PM org.apache.coyote.AbstractProtocol start
INFORMATION: Starting ProtocolHandler ["http-nio-8080"]
Dez 14, 2017 4:32:46 PM org.apache.coyote.AbstractProtocol start
INFORMATION: Starting ProtocolHandler ["ajp-nio-8009"]
Dez 14, 2017 4:32:46 PM org.apache.catalina.startup.Catalina start
INFORMATION: Server startup in 6457 ms
#ApplicationPath provided by JAX – RS which is used to develop a restful web services application with out web.xml. So you can delete your web.xml
Then try overriding getProperties
#ApplicationPath("/resources")
public class MyApplication extends Application {
// All request scoped resources and providers
#Override
public Set<Class<?>> getClasses() {
Set<Class<?>> classes = new HashSet<>();
classes.add(AuthenticationEndpoint.class);
return classes;
}
#Override
public Map<String, Object> getProperties() {
final Map<String, Object> properties = new HashMap<>();
properties.put("jersey.config.server.provider.packages",
"api");//api-->here mention your yourpackage.to.scan"
return properties;
}
}
Related
I have a test listener which i created for learning purposes. It was working fine and i was trying to learn JSTL and added the dependent jar to build path and also pasted them under WEB-INF/lib directory of my project, i also did a maven update because my JSTL was not working. Now when i try to run tomcat and access through browser i get below error
Below is my project directory and tomcat logs from console.
Console logs:
Feb 23, 2022 11:53:38 PM org.apache.catalina.startup.VersionLoggerListener log
INFO: Server version name: Apache Tomcat/8.5.69
Feb 23, 2022 11:53:38 PM org.apache.catalina.startup.VersionLoggerListener log
INFO: Server built: Jun 30 2021 18:00:00 UTC
Feb 23, 2022 11:53:38 PM org.apache.catalina.startup.VersionLoggerListener log
INFO: Server version number: 8.5.69.0
Feb 23, 2022 11:53:38 PM org.apache.catalina.startup.VersionLoggerListener log
INFO: OS Name: Windows 10
Feb 23, 2022 11:53:38 PM org.apache.catalina.startup.VersionLoggerListener log
INFO: OS Version: 10.0
Feb 23, 2022 11:53:38 PM org.apache.catalina.startup.VersionLoggerListener log
INFO: Architecture: amd64
Feb 23, 2022 11:53:38 PM org.apache.catalina.startup.VersionLoggerListener log
INFO: Java Home: C:\Users\shiva\.p2\pool\plugins\org.eclipse.justj.openjdk.hotspot.jre.full.win32.x86_64_16.0.2.v20210721-1149\jre
Feb 23, 2022 11:53:38 PM org.apache.catalina.startup.VersionLoggerListener log
INFO: JVM Version: 16.0.2+7-67
Feb 23, 2022 11:53:38 PM org.apache.catalina.startup.VersionLoggerListener log
INFO: JVM Vendor: Oracle Corporation
Feb 23, 2022 11:53:38 PM org.apache.catalina.startup.VersionLoggerListener log
INFO: CATALINA_BASE: C:\Users\shiva\eclipse-workspace\.metadata\.plugins\org.eclipse.wst.server.core\tmp0
Feb 23, 2022 11:53:38 PM org.apache.catalina.startup.VersionLoggerListener log
INFO: CATALINA_HOME: D:\Software\apache-tomcat-8.5.69-windows-x64\apache-tomcat-8.5.69
Feb 23, 2022 11:53:38 PM org.apache.catalina.startup.VersionLoggerListener log
INFO: Command line argument: -Dcatalina.base=C:\Users\shiva\eclipse-workspace\.metadata\.plugins\org.eclipse.wst.server.core\tmp0
Feb 23, 2022 11:53:38 PM org.apache.catalina.startup.VersionLoggerListener log
INFO: Command line argument: -Dcatalina.home=D:\Software\apache-tomcat-8.5.69-windows-x64\apache-tomcat-8.5.69
Feb 23, 2022 11:53:38 PM org.apache.catalina.startup.VersionLoggerListener log
INFO: Command line argument: -Dwtp.deploy=C:\Users\shiva\eclipse-workspace\.metadata\.plugins\org.eclipse.wst.server.core\tmp0\wtpwebapps
Feb 23, 2022 11:53:38 PM org.apache.catalina.startup.VersionLoggerListener log
INFO: Command line argument: --add-opens=java.base/java.lang=ALL-UNNAMED
Feb 23, 2022 11:53:38 PM org.apache.catalina.startup.VersionLoggerListener log
INFO: Command line argument: --add-opens=java.base/java.io=ALL-UNNAMED
Feb 23, 2022 11:53:38 PM org.apache.catalina.startup.VersionLoggerListener log
INFO: Command line argument: --add-opens=java.base/java.util=ALL-UNNAMED
Feb 23, 2022 11:53:38 PM org.apache.catalina.startup.VersionLoggerListener log
INFO: Command line argument: --add-opens=java.base/java.util.concurrent=ALL-UNNAMED
Feb 23, 2022 11:53:38 PM org.apache.catalina.startup.VersionLoggerListener log
INFO: Command line argument: --add-opens=java.rmi/sun.rmi.transport=ALL-UNNAMED
Feb 23, 2022 11:53:38 PM org.apache.catalina.startup.VersionLoggerListener log
INFO: Command line argument: -Dfile.encoding=Cp1252
Feb 23, 2022 11:53:38 PM org.apache.catalina.startup.VersionLoggerListener log
INFO: Command line argument: -XX:+ShowCodeDetailsInExceptionMessages
Feb 23, 2022 11:53:38 PM org.apache.catalina.core.AprLifecycleListener lifecycleEvent
INFO: The Apache Tomcat Native library which allows using OpenSSL was not found on the java.library.path: [C:\Users\shiva\.p2\pool\plugins\org.eclipse.justj.openjdk.hotspot.jre.full.win32.x86_64_16.0.2.v20210721-1149\jre\bin;C:\WINDOWS\Sun\Java\bin;C:\WINDOWS\system32;C:\WINDOWS;C:/Users/shiva/.p2/pool/plugins/org.eclipse.justj.openjdk.hotspot.jre.full.win32.x86_64_16.0.2.v20210721-1149/jre/bin/server;C:/Users/shiva/.p2/pool/plugins/org.eclipse.justj.openjdk.hotspot.jre.full.win32.x86_64_16.0.2.v20210721-1149/jre/bin;C:\app\shiva\product\21c\dbhomeXE\bin;C:\Program Files\Common Files\Oracle\Java\javapath;C:\Windows\system32;C:\Windows;C:\Windows\System32\Wbem;C:\Windows\System32\WindowsPowerShell\v1.0\;C:\Windows\System32\OpenSSH\;C:\Program Files (x86)\NVIDIA Corporation\PhysX\Common;C:\Program Files\NVIDIA Corporation\NVIDIA NvDLISR;C:\Program Files\nodejs\;C:\Program Files\Git\cmd;C:\Program Files (x86)\dotnet\;C:\WINDOWS\system32;C:\WINDOWS;C:\WINDOWS\System32\Wbem;C:\WINDOWS\System32\WindowsPowerShell\v1.0\;C:\WINDOWS\System32\OpenSSH\;D:\Software\mongosh-1.1.7-win32-x64\mongosh-1.1.7-win32-x64\bin;C:\Users\shiva\AppData\Local\Microsoft\WindowsApps;C:\Users\shiva\AppData\Local\Programs\Microsoft VS Code\bin;C:\Users\shiva\AppData\Roaming\npm;C:\apache-maven-3.8.2\bin;C:\Program Files\JetBrains\IntelliJ IDEA Community Edition 2021.3\bin;;D:\Software\mongosh-1.1.7-win32-x64\mongosh-1.1.7-win32-x64\bin;;C:\Users\shiva\Desktop;;.]
Feb 23, 2022 11:53:38 PM org.apache.coyote.AbstractProtocol init
INFO: Initializing ProtocolHandler ["http-nio-8080"]
Feb 23, 2022 11:53:38 PM org.apache.tomcat.util.net.NioSelectorPool getSharedSelector
INFO: Using a shared selector for servlet write/read
Feb 23, 2022 11:53:38 PM org.apache.catalina.startup.Catalina load
INFO: Initialization processed in 974 ms
Feb 23, 2022 11:53:38 PM org.apache.catalina.core.StandardService startInternal
INFO: Starting service [Catalina]
Feb 23, 2022 11:53:38 PM org.apache.catalina.core.StandardEngine startInternal
INFO: Starting Servlet engine: [Apache Tomcat/8.5.69]
Feb 23, 2022 11:53:39 PM org.apache.catalina.core.StandardContext listenerStart
SEVERE: Error configuring application listener of class [shop.MyServletContextListener]
java.lang.ClassNotFoundException: shop.MyServletContextListener
at org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1415)
at org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1223)
at org.apache.catalina.core.DefaultInstanceManager.loadClass(DefaultInstanceManager.java:538)
at org.apache.catalina.core.DefaultInstanceManager.loadClassMaybePrivileged(DefaultInstanceManager.java:519)
at org.apache.catalina.core.DefaultInstanceManager.newInstance(DefaultInstanceManager.java:150)
at org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:4686)
at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5232)
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:183)
at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1429)
at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1419)
at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1130)
at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:630)
at java.base/java.lang.Thread.run(Thread.java:831)
Feb 23, 2022 11:53:39 PM org.apache.catalina.core.StandardContext listenerStart
SEVERE: Skipped installing application listeners due to previous error(s)
Feb 23, 2022 11:53:39 PM org.apache.catalina.core.StandardContext startInternal
SEVERE: One or more listeners failed to start. Full details will be found in the appropriate container log file
Feb 23, 2022 11:53:39 PM org.apache.catalina.core.StandardContext startInternal
SEVERE: Context [/shop] startup failed due to previous errors
Feb 23, 2022 11:53:39 PM org.apache.coyote.AbstractProtocol start
INFO: Starting ProtocolHandler ["http-nio-8080"]
Feb 23, 2022 11:53:39 PM org.apache.catalina.startup.Catalina start
INFO: Server startup in 487 ms
Below is my web.xml file:
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" id="WebApp_ID" version="3.1">
<display-name>Shopping Application</display-name>
<servlet>
<servlet-name>shoppingServlet</servlet-name>
<servlet-class>shop.ShoppingServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>shoppingServlet</servlet-name>
<url-pattern>/shopping</url-pattern>
</servlet-mapping>
<servlet>
<servlet-name>loginServlet</servlet-name>
<servlet-class>shop.LoginServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>loginServlet</servlet-name>
<url-pattern>/login</url-pattern>
</servlet-mapping>
<servlet>
<servlet-name>downloadServlet</servlet-name>
<servlet-class>shop.DownloadServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>downloadServlet</servlet-name>
<url-pattern>/down</url-pattern>
</servlet-mapping>
<servlet>
<servlet-name>listenerServlet</servlet-name>
<servlet-class>shop.ListenerServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>listenerServlet</servlet-name>
<url-pattern>/listen</url-pattern>
</servlet-mapping>
<context-param>
<param-name>breed</param-name>
<param-value>German Shephard</param-value>
</context-param>
<servlet>
<servlet-name>MyTest</servlet-name>
<jsp-file>/MyTest.jsp</jsp-file>
<init-param>
<param-name>email</param-name>
<param-value>shivamsingh794#gmail.com</param-value>
</init-param>
</servlet>
<servlet-mapping>
<servlet-name>MyTest</servlet-name>
<url-pattern>/MyTest.jsp</url-pattern>
</servlet-mapping>
<listener>
<listener-class>
shop.MyServletContextListener
</listener-class>
</listener>
</web-app>
Tomcat throws exception
java.lang.ClassNotFoundException: com.web.servlets.SearchServiceServlet every time i try to access my servlet.
The servlets is in the correct package structure:
I defined my servlet in the web.xml:
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://xmlns.jcp.org/xml/ns/javaee" xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_4_0.xsd" id="WebApp_ID" version="4.0">
<display-name>PetClinic</display-name>
<welcome-file-list>
<welcome-file>index.html</welcome-file>
<welcome-file>index.htm</welcome-file>
<welcome-file>index.jsp</welcome-file>
<welcome-file>default.html</welcome-file>
<welcome-file>default.htm</welcome-file>
<welcome-file>default.jsp</welcome-file>
</welcome-file-list>
<session-config>
<session-timeout>15</session-timeout>
</session-config>
<servlet>
<servlet-name>searchService</servlet-name>
<servlet-class>com.web.servlets.SearchServiceServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>searchService</servlet-name>
<url-pattern>/searchServ</url-pattern>
</servlet-mapping>
</web-app>
The servlet class:
public class SearchServiceServlet extends HttpServlet {
private static final long serialVersionUID = 1L;
/**
* #see HttpServlet#HttpServlet()
*/
public SearchServiceServlet() {
super();
// TODO Auto-generated constructor stub
}
/**
* #see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
*/
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
// TODO Auto-generated method stub
String first_name = request.getParameter("first_name");
String last_name = request.getParameter("last_name");
int age = Integer.valueOf( request.getParameter("age") );
String pet_name = request.getParameter("pet_Name");
String pet_type = request.getParameter("pet_type");
int rating = Integer.valueOf(request.getParameter("rating"));
int experience = Integer.valueOf(request.getParameter("experience"));
System.out.println("First name = "+first_name+",last name = "+last_name+",age = "+age+",pet's name = "+pet_name+",pet's type = "+pet_type+",rating = "+rating+",experience = "+experience);
}
/**
* #see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
*/
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
// TODO Auto-generated method stub
doGet(request, response);
}
}
Could it be that eclipse doesn't properly generate classes?If yes,how can i test this?Because a simple POJO with main method works fine.
Also,here is the full exception and what the tomcat prints when i start the application:
апр 11, 2019 12:15:21 PM org.apache.catalina.startup.VersionLoggerListener log
INFO: Server version name: Apache Tomcat/9.0.17
апр 11, 2019 12:15:21 PM org.apache.catalina.startup.VersionLoggerListener log
INFO: Server built: Mar 13 2019 15:55:27 UTC
апр 11, 2019 12:15:21 PM org.apache.catalina.startup.VersionLoggerListener log
INFO: Server version number: 9.0.17.0
апр 11, 2019 12:15:21 PM org.apache.catalina.startup.VersionLoggerListener log
INFO: OS Name: Windows 10
апр 11, 2019 12:15:21 PM org.apache.catalina.startup.VersionLoggerListener log
INFO: OS Version: 10.0
апр 11, 2019 12:15:21 PM org.apache.catalina.startup.VersionLoggerListener log
INFO: Architecture: amd64
апр 11, 2019 12:15:21 PM org.apache.catalina.startup.VersionLoggerListener log
INFO: Java Home: C:\Program Files\Java\jdk1.8.0_181\jre
апр 11, 2019 12:15:21 PM org.apache.catalina.startup.VersionLoggerListener log
INFO: JVM Version: 1.8.0_181-b13
апр 11, 2019 12:15:21 PM org.apache.catalina.startup.VersionLoggerListener log
INFO: JVM Vendor: Oracle Corporation
апр 11, 2019 12:15:21 PM org.apache.catalina.startup.VersionLoggerListener log
INFO: CATALINA_BASE: C:\Users\Barracuda\Desktop\Projects\Eclipse Projects\.metadata\.plugins\org.eclipse.wst.server.core\tmp0
апр 11, 2019 12:15:21 PM org.apache.catalina.startup.VersionLoggerListener log
INFO: CATALINA_HOME: C:\Program Files\Apache Software Foundation\Tomcat 9.0
апр 11, 2019 12:15:21 PM org.apache.catalina.startup.VersionLoggerListener log
INFO: Command line argument: -Dcatalina.base=C:\Users\Barracuda\Desktop\Projects\Eclipse Projects\.metadata\.plugins\org.eclipse.wst.server.core\tmp0
апр 11, 2019 12:15:21 PM org.apache.catalina.startup.VersionLoggerListener log
INFO: Command line argument: -Dcatalina.home=C:\Program Files\Apache Software Foundation\Tomcat 9.0
апр 11, 2019 12:15:21 PM org.apache.catalina.startup.VersionLoggerListener log
INFO: Command line argument: -Dwtp.deploy=C:\Users\Barracuda\Desktop\Projects\Eclipse Projects\.metadata\.plugins\org.eclipse.wst.server.core\tmp0\wtpwebapps
апр 11, 2019 12:15:21 PM org.apache.catalina.startup.VersionLoggerListener log
INFO: Command line argument: -Djava.endorsed.dirs=C:\Program Files\Apache Software Foundation\Tomcat 9.0\endorsed
апр 11, 2019 12:15:21 PM org.apache.catalina.startup.VersionLoggerListener log
INFO: Command line argument: -Dfile.encoding=Cp1251
апр 11, 2019 12:15:21 PM org.apache.catalina.core.AprLifecycleListener lifecycleEvent
INFO: An older version [1.2.17] of the APR based Apache Tomcat Native library is installed, while Tomcat recommends a minimum version of [1.2.21]
апр 11, 2019 12:15:21 PM org.apache.catalina.core.AprLifecycleListener lifecycleEvent
INFO: Loaded APR based Apache Tomcat Native library [1.2.17] using APR version [1.6.3].
апр 11, 2019 12:15:21 PM org.apache.catalina.core.AprLifecycleListener lifecycleEvent
INFO: APR capabilities: IPv6 [true], sendfile [true], accept filters [false], random [true].
апр 11, 2019 12:15:21 PM org.apache.catalina.core.AprLifecycleListener lifecycleEvent
INFO: APR/OpenSSL configuration: useAprConnector [false], useOpenSSL [true]
апр 11, 2019 12:15:22 PM org.apache.catalina.core.AprLifecycleListener initializeSSL
INFO: OpenSSL successfully initialized [OpenSSL 1.0.2o 27 Mar 2018]
апр 11, 2019 12:15:22 PM org.apache.coyote.AbstractProtocol init
INFO: Initializing ProtocolHandler ["http-nio-8080"]
апр 11, 2019 12:15:23 PM org.apache.coyote.AbstractProtocol init
INFO: Initializing ProtocolHandler ["ajp-nio-8009"]
апр 11, 2019 12:15:23 PM org.apache.catalina.startup.Catalina load
INFO: Server initialization in [2 666] milliseconds
апр 11, 2019 12:15:23 PM org.apache.catalina.core.StandardService startInternal
INFO: Starting service [Catalina]
апр 11, 2019 12:15:23 PM org.apache.catalina.core.StandardEngine startInternal
INFO: Starting Servlet engine: [Apache Tomcat/9.0.17]
апр 11, 2019 12:15:23 PM org.apache.jasper.servlet.TldScanner scanJars
INFO: At least one JAR was scanned for TLDs yet contained no TLDs. Enable debug logging for this logger for a complete list of JARs that were scanned but no TLDs were found in them. Skipping unneeded JARs during scanning can improve startup time and JSP compilation time.
апр 11, 2019 12:15:24 PM org.apache.jasper.servlet.TldScanner scanJars
INFO: At least one JAR was scanned for TLDs yet contained no TLDs. Enable debug logging for this logger for a complete list of JARs that were scanned but no TLDs were found in them. Skipping unneeded JARs during scanning can improve startup time and JSP compilation time.
апр 11, 2019 12:15:24 PM org.apache.coyote.AbstractProtocol start
INFO: Starting ProtocolHandler ["http-nio-8080"]
апр 11, 2019 12:15:24 PM org.apache.coyote.AbstractProtocol start
INFO: Starting ProtocolHandler ["ajp-nio-8009"]
апр 11, 2019 12:15:24 PM org.apache.catalina.startup.Catalina start
INFO: Server startup in [987] milliseconds
апр 11, 2019 12:15:28 PM org.apache.catalina.core.ApplicationContext log
INFO: Marking servlet [searchService] as unavailable
апр 11, 2019 12:15:28 PM org.apache.catalina.core.StandardWrapperValve invoke
SEVERE: Allocate exception for servlet [searchService]
java.lang.ClassNotFoundException: com.web.servlets.SearchServiceServlet
at org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1363)
at org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1186)
at org.apache.catalina.core.DefaultInstanceManager.loadClass(DefaultInstanceManager.java:540)
at org.apache.catalina.core.DefaultInstanceManager.loadClassMaybePrivileged(DefaultInstanceManager.java:521)
at org.apache.catalina.core.DefaultInstanceManager.newInstance(DefaultInstanceManager.java:150)
at org.apache.catalina.core.StandardWrapper.loadServlet(StandardWrapper.java:1031)
at org.apache.catalina.core.StandardWrapper.allocate(StandardWrapper.java:761)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:134)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:96)
at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:490)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:139)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:92)
at org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:678)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:343)
at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:408)
at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:66)
at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:834)
at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1415)
at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
at java.lang.Thread.run(Thread.java:748)
P.S The class is in the right package :package com.web.servlets;
Try specifying the package in your class file.
package com.web.servlets;
java.lang.ClassNotFoundException Exception is thrown when the ClassLoader cannot find the specified class.
You have:
<servlet-class>com.web.servlets.SearchServiceServlet</servlet-class>
That means you have a package: com.web.servlets where the class SearchServiceServlet is located.
In case you have a Maven project you should have scr/main/java/%yourpackagename%/yourClass
In case it is a simple web-project then it should be like src/yourpackagename/yourClass.
The problem got fixed after the restart of eclipse...Though there is another problem. Whenever i save the servlets class,after changing it,it doesn't see the new class,but uses the previous version of it.What's the problem here?
Am facing a problem accessing a Restful web service via this url:
localhost:8080/PrimNumbers/Generator/strategy
I got this error:
HTTP Status 404 - /PrimNumbers/Generator/strategy
type Status report
message /PrimNumbers/Generator/strategy
description The requested resource is not available.
Am using tomcat7.0.81 server and jersey1.17 framework (i have included the jersey jar file under WEB-INF/lib in my project).
here is my web.xml file:
<?xml version="1.0" encoding="UTF-8"?>
<element>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns="http://java.sun.com/xml/ns/javaee"
xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"
version="3.0">
<display-name>PrimNumbers</display-name>
<servlet>
<servlet-name>Jersey RESTful Application</servlet-name>
<servlet-class>com.sun.jersey.spi.container.servlet.ServletContainer</servlet-class>
<init-param>
<param-name> jersey.config.server.provider.packages</param-name>
<param-value>PrimeNbs</param-value>
</init-param>
</servlet>
<servlet-mapping>
<servlet-name>Jersey RESTful Application</servlet-name>
<url-pattern>/*</url-pattern>
</servlet-mapping>
</web-app>
</element
>
and this is my service.java(am just testing the service):
package PrimeNbs;
import javax.ws.rs.Path;
import javax.ws.rs.GET;
import javax.ws.rs.Produces;
import javax.ws.rs.core.MediaType;
//annotations
#Path("/Generator")
public class PrimeNbsGeneratorService {
#GET
#Path("/strategy")
#Produces(MediaType.TEXT_HTML)
public String Strategy1(){
boolean prime=true;
String rslt="<HTML><h1> Prime numbers: ";
return(rslt+" test...</h1></HTML>");
}
}
while running my server I got these log msgs:
> ug 22, 2017 11:22:44 AM org.apache.tomcat.util.digester.SetPropertiesRule begin
WARNING: [SetPropertiesRule]{Server/Service/Engine/Host/Context} Setting property 'source' to 'org.eclipse.jst.jee.server:PrimNumbers' did not find a matching property.
Aug 22, 2017 11:22:44 AM org.apache.catalina.startup.VersionLoggerListener log
INFO: Server version: Apache Tomcat/7.0.81
Aug 22, 2017 11:22:44 AM org.apache.catalina.startup.VersionLoggerListener log
INFO: Server built: Aug 11 2017 10:21:27 UTC
Aug 22, 2017 11:22:44 AM org.apache.catalina.startup.VersionLoggerListener log
INFO: Server number: 7.0.81.0
Aug 22, 2017 11:22:44 AM org.apache.catalina.startup.VersionLoggerListener log
INFO: OS Name: Linux
Aug 22, 2017 11:22:44 AM org.apache.catalina.startup.VersionLoggerListener log
INFO: OS Version: 4.4.0-21-generic
Aug 22, 2017 11:22:44 AM org.apache.catalina.startup.VersionLoggerListener log
INFO: Architecture: amd64
Aug 22, 2017 11:22:44 AM org.apache.catalina.startup.VersionLoggerListener log
INFO: Java Home: /home/elhem/java/jre1.8.0_121
Aug 22, 2017 11:22:44 AM org.apache.catalina.startup.VersionLoggerListener log
INFO: JVM Version: 1.8.0_121-b13
Aug 22, 2017 11:22:44 AM org.apache.catalina.startup.VersionLoggerListener log
INFO: JVM Vendor: Oracle Corporation
Aug 22, 2017 11:22:44 AM org.apache.catalina.startup.VersionLoggerListener log
INFO: CATALINA_BASE: /home/elhem/workspace/tomcat
Aug 22, 2017 11:22:44 AM org.apache.catalina.startup.VersionLoggerListener log
INFO: CATALINA_HOME: /home/elhem/workspace/tomcat
Aug 22, 2017 11:22:44 AM org.apache.catalina.startup.VersionLoggerListener log
INFO: Command line argument: -Dcatalina.base=/home/elhem/workspace/tomcat
Aug 22, 2017 11:22:44 AM org.apache.catalina.startup.VersionLoggerListener log
INFO: Command line argument: -Dcatalina.home=/home/elhem/workspace/tomcat
Aug 22, 2017 11:22:44 AM org.apache.catalina.startup.VersionLoggerListener log
INFO: Command line argument: -Dwtp.deploy=/home/elhem/workspace/tomcat/wtpwebapps
Aug 22, 2017 11:22:44 AM org.apache.catalina.startup.VersionLoggerListener log
INFO: Command line argument: -Djava.endorsed.dirs=/home/elhem/workspace/tomcat/endorsed
Aug 22, 2017 11:22:44 AM org.apache.catalina.startup.VersionLoggerListener log
INFO: Command line argument: -Dfile.encoding=UTF-8
Aug 22, 2017 11:22:44 AM org.apache.catalina.core.AprLifecycleListener lifecycleEvent
INFO: The APR based Apache Tomcat Native library which allows optimal performance in production environments was not found on the java.library.path: /usr/java/packages/lib/amd64:/usr/lib64:/lib64:/lib:/usr/lib
Aug 22, 2017 11:22:45 AM org.apache.coyote.AbstractProtocol init
INFO: Initializing ProtocolHandler ["http-bio-8080"]
Aug 22, 2017 11:22:45 AM org.apache.coyote.AbstractProtocol init
INFO: Initializing ProtocolHandler ["ajp-bio-8009"]
Aug 22, 2017 11:22:45 AM org.apache.catalina.startup.Catalina load
INFO: Initialization processed in 865 ms
Aug 22, 2017 11:22:45 AM org.apache.catalina.core.StandardService startInternal
INFO: Starting service Catalina
Aug 22, 2017 11:22:45 AM org.apache.catalina.core.StandardEngine startInternal
INFO: Starting Servlet Engine: Apache Tomcat/7.0.81
Aug 22, 2017 11:22:45 AM org.apache.catalina.startup.TldConfig execute
INFO: At least one JAR was scanned for TLDs yet contained no TLDs. Enable debug logging for this logger for a complete list of JARs that were scanned but no TLDs were found in them. Skipping unneeded JARs during scanning can improve startup time and JSP compilation time.
Aug 22, 2017 11:22:45 AM org.apache.catalina.startup.HostConfig deployDirectory
INFO: Deploying web application directory /home/elhem/workspace/tomcat/webapps/host-manager
Aug 22, 2017 11:22:45 AM org.apache.catalina.startup.HostConfig deployDirectory
INFO: Deployment of web application directory /home/elhem/workspace/tomcat/webapps/host-manager has finished in 74 ms
Aug 22, 2017 11:22:46 AM org.apache.catalina.startup.HostConfig deployDirectory
INFO: Deploying web application directory /home/elhem/workspace/tomcat/webapps/manager
Aug 22, 2017 11:22:46 AM org.apache.catalina.startup.HostConfig deployDirectory
INFO: Deployment of web application directory /home/elhem/workspace/tomcat/webapps/manager has finished in 67 ms
Aug 22, 2017 11:22:46 AM org.apache.catalina.startup.HostConfig deployDirectory
INFO: Deploying web application directory /home/elhem/workspace/tomcat/webapps/ROOT
Aug 22, 2017 11:22:46 AM org.apache.catalina.startup.HostConfig deployDirectory
INFO: Deployment of web application directory /home/elhem/workspace/tomcat/webapps/ROOT has finished in 61 ms
Aug 22, 2017 11:22:46 AM org.apache.catalina.startup.HostConfig deployDirectory
INFO: Deploying web application directory /home/elhem/workspace/tomcat/webapps/docs
Aug 22, 2017 11:22:46 AM org.apache.catalina.startup.HostConfig deployDirectory
INFO: Deployment of web application directory /home/elhem/workspace/tomcat/webapps/docs has finished in 60 ms
Aug 22, 2017 11:22:46 AM org.apache.catalina.startup.HostConfig deployDirectory
INFO: Deploying web application directory /home/elhem/workspace/tomcat/webapps/examples
Aug 22, 2017 11:22:46 AM org.apache.catalina.core.ApplicationContext log
INFO: ContextListener: contextInitialized()
Aug 22, 2017 11:22:46 AM org.apache.catalina.core.ApplicationContext log
INFO: SessionListener: contextInitialized()
Aug 22, 2017 11:22:46 AM org.apache.catalina.core.ApplicationContext log
INFO: ContextListener: attributeAdded('org.apache.jasper.compiler.TldLocationsCache', 'org.apache.jasper.compiler.TldLocationsCache#51542878')
Aug 22, 2017 11:22:46 AM org.apache.catalina.startup.HostConfig deployDirectory
INFO: Deployment of web application directory /home/elhem/workspace/tomcat/webapps/examples has finished in 231 ms
Aug 22, 2017 11:22:46 AM org.apache.coyote.AbstractProtocol start
INFO: Starting ProtocolHandler ["http-bio-8080"]
Aug 22, 2017 11:22:46 AM org.apache.coyote.AbstractProtocol start
INFO: Starting ProtocolHandler ["ajp-bio-8009"]
Aug 22, 2017 11:22:46 AM org.apache.catalina.startup.Catalina start
INFO: Server startup in 1397 ms
Can anyone help! I will be so appreciating.
You have a problem with your web.xml.
You now create a servlet with the name Jersey RESTful Application and a mapping for a servlet with the name PrimNumbers. But the servler PrimNumbers does not exists.
So what you need to do is make the servletand servlet-mapping use the same name.
Like this:
<servlet>
<servlet-name>Jersey RESTful Application</servlet-name>
<servlet-class>com.sun.jersey.spi.container.servlet.ServletContainer</servlet-class>
<init-param>
<param-name> jersey.config.server.provider.packages</param-name>
<param-value>PrimeNbs</param-value>
</init-param>
</servlet>
<servlet-mapping>
<servlet-name>Jersey RESTful Application</servlet-name>
<url-pattern>/*</url-pattern>
</servlet-mapping>
When I try to load servlet in my eclipse neon, it gives me "Error instantiating servlet class com.Test" error stating that "The server encountered an internal error that prevented it from fulfilling this request." I can load .jsp page successfully but while trying to load servlet page it gives me following error in eclipse borwser.
and console generates following error.
Sep 07, 2016 9:03:01 AM org.apache.tomcat.util.digester.SetPropertiesRule begin
WARNING: [SetPropertiesRule]{Server/Service/Engine/Host/Context} Setting property 'source' to 'org.eclipse.jst.jee.server:Demo' did not find a matching property.
Sep 07, 2016 9:03:01 AM org.apache.catalina.startup.VersionLoggerListener log
INFO: Server version: Apache Tomcat/7.0.70
Sep 07, 2016 9:03:01 AM org.apache.catalina.startup.VersionLoggerListener log
INFO: Server built: Jun 15 2016 16:27:45 UTC
Sep 07, 2016 9:03:01 AM org.apache.catalina.startup.VersionLoggerListener log
INFO: Server number: 7.0.70.0
Sep 07, 2016 9:03:01 AM org.apache.catalina.startup.VersionLoggerListener log
INFO: OS Name: Windows 7
Sep 07, 2016 9:03:01 AM org.apache.catalina.startup.VersionLoggerListener log
INFO: OS Version: 6.1
Sep 07, 2016 9:03:01 AM org.apache.catalina.startup.VersionLoggerListener log
INFO: Architecture: amd64
Sep 07, 2016 9:03:01 AM org.apache.catalina.startup.VersionLoggerListener log
INFO: Java Home: C:\Program Files\Java\jre1.8.0_101
Sep 07, 2016 9:03:01 AM org.apache.catalina.startup.VersionLoggerListener log
INFO: JVM Version: 1.8.0_101-b13
Sep 07, 2016 9:03:01 AM org.apache.catalina.startup.VersionLoggerListener log
INFO: JVM Vendor: Oracle Corporation
Sep 07, 2016 9:03:01 AM org.apache.catalina.startup.VersionLoggerListener log
INFO: CATALINA_BASE: D:\darshana\eWorkspace\.metadata\.plugins\org.eclipse.wst.server.core\tmp2
Sep 07, 2016 9:03:01 AM org.apache.catalina.startup.VersionLoggerListener log
INFO: CATALINA_HOME: C:\Program Files\Apache Software Foundation\Tomcat 7.0
Sep 07, 2016 9:03:01 AM org.apache.catalina.startup.VersionLoggerListener log
INFO: Command line argument: -Dcatalina.base=D:\darshana\eWorkspace\.metadata\.plugins\org.eclipse.wst.server.core\tmp2
Sep 07, 2016 9:03:01 AM org.apache.catalina.startup.VersionLoggerListener log
INFO: Command line argument: -Dcatalina.home=C:\Program Files\Apache Software Foundation\Tomcat 7.0
Sep 07, 2016 9:03:01 AM org.apache.catalina.startup.VersionLoggerListener log
INFO: Command line argument: -Dwtp.deploy=D:\darshana\eWorkspace\.metadata\.plugins\org.eclipse.wst.server.core\tmp2\wtpwebapps
Sep 07, 2016 9:03:01 AM org.apache.catalina.startup.VersionLoggerListener log
INFO: Command line argument: -Djava.endorsed.dirs=C:\Program Files\Apache Software Foundation\Tomcat 7.0\endorsed
Sep 07, 2016 9:03:01 AM org.apache.catalina.startup.VersionLoggerListener log
INFO: Command line argument: -Dfile.encoding=Cp1252
Sep 07, 2016 9:03:01 AM org.apache.catalina.core.AprLifecycleListener lifecycleEvent
INFO: The APR based Apache Tomcat Native library which allows optimal performance in production environments was not found on the java.library.path: C:\Program Files\Java\jre1.8.0_101\bin;C:\Windows\Sun\Java\bin;C:\Windows\system32;C:\Windows;C:/Program Files/Java/jre1.8.0_101/bin/server;C:/Program Files/Java/jre1.8.0_101/bin;C:/Program Files/Java/jre1.8.0_101/lib/amd64;C:\ProgramData\Oracle\Java\javapath;C:\Program Files (x86)\Intel\iCLS Client\;C:\Program Files\Intel\iCLS Client\;C:\Windows\system32;C:\Windows;C:\Windows\System32\Wbem;C:\Windows\System32\WindowsPowerShell\v1.0\;C:\Program Files\Intel\Intel(R) Management Engine Components\DAL;C:\Program Files (x86)\Intel\Intel(R) Management Engine Components\DAL;C:\Program Files\Intel\Intel(R) Management Engine Components\IPT;C:\Program Files (x86)\Intel\Intel(R) Management Engine Components\IPT;C:\Program Files (x86)\PuTTY\;C:\Program Files\TortoiseSVN\bin;C:\Program Files (x86)\Skype\Phone\;C:\Program Files\nodejs\;C:\Program Files\MongoDB\Server\3.2\bin;C:\Users\darshana.ahalpara\AppData\Roaming\npm;C:\Program Files\MongoDB\Server\3.2\bin;C:\Program Files\Java\jdk1.8.0_101\bin;;C:\Users\darshana.ahalpara\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Eclipse;;.
Sep 07, 2016 9:03:01 AM org.apache.coyote.AbstractProtocol init
INFO: Initializing ProtocolHandler ["http-bio-8085"]
Sep 07, 2016 9:03:01 AM org.apache.coyote.AbstractProtocol init
INFO: Initializing ProtocolHandler ["ajp-bio-8009"]
Sep 07, 2016 9:03:01 AM org.apache.catalina.startup.Catalina load
INFO: Initialization processed in 731 ms
Sep 07, 2016 9:03:02 AM org.apache.catalina.core.StandardService startInternal
INFO: Starting service Catalina
Sep 07, 2016 9:03:02 AM org.apache.catalina.core.StandardEngine startInternal
INFO: Starting Servlet Engine: Apache Tomcat/7.0.70
Sep 07, 2016 9:03:02 AM org.apache.coyote.AbstractProtocol start
INFO: Starting ProtocolHandler ["http-bio-8085"]
Sep 07, 2016 9:03:02 AM org.apache.coyote.AbstractProtocol start
INFO: Starting ProtocolHandler ["ajp-bio-8009"]
Sep 07, 2016 9:03:02 AM org.apache.catalina.startup.Catalina start
INFO: Server startup in 954 ms
Sep 07, 2016 9:03:27 AM org.apache.catalina.core.ApplicationContext log
INFO: Marking servlet Demo as unavailable
Sep 07, 2016 9:03:27 AM org.apache.catalina.core.StandardWrapperValve invoke
SEVERE: Allocate exception for servlet Demo
java.lang.ClassNotFoundException: com.Test
at org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1891)
at org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1734)
at org.apache.catalina.core.DefaultInstanceManager.loadClass(DefaultInstanceManager.java:504)
at org.apache.catalina.core.DefaultInstanceManager.loadClassMaybePrivileged(DefaultInstanceManager.java:486)
at org.apache.catalina.core.DefaultInstanceManager.newInstance(DefaultInstanceManager.java:113)
at org.apache.catalina.core.StandardWrapper.loadServlet(StandardWrapper.java:1146)
at org.apache.catalina.core.StandardWrapper.allocate(StandardWrapper.java:866)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:134)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:122)
at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:505)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:169)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:103)
at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:956)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:116)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:442)
at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1082)
at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:623)
at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:318)
at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
at java.lang.Thread.run(Unknown Source)
Following is my directory structure.
here my Test.java
package com.abc;
import java.io.IOException;
import javax.servlet.ServletException;
//import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
/**
* Servlet implementation class Test
*/
//#WebServlet("/Test")
public class Test extends HttpServlet {
private static final long serialVersionUID = 1L;
/**
* #see HttpServlet#HttpServlet()
*/
public Test() {
super();
// TODO Auto-generated constructor stub
}
/**
* #see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
*/
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
// TODO Auto-generated method stub
response.getWriter().append("Hello....!!!!!! ");//.append(request.getContextPath());
}
}
Here is web.xml
<?xml version="1.0" encoding="UTF-8"?>
<web-app
xmlns="http://java.sun.com/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"
version="3.0">
<servlet>
<servlet-name>Demo</servlet-name>
<servlet-class>com.abc.Test</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>Demo</servlet-name>
<url-pattern>/demo</url-pattern>
</servlet-mapping>
<servlet>
<servlet-name>example</servlet-name>
<jsp-file>/exmpl.jsp</jsp-file>
</servlet>
<servlet-mapping>
<servlet-name>example</servlet-name>
<url-pattern>/example</url-pattern>
</servlet-mapping>
</web-app>
In Eclipse, when I click run, it always go to the incorrect path on Eclipse browser. What I have done wrong?
For example; when I click testGet.java and click Run, Eclipse goes to http://localhost:8080/slwebservice/WEB-INF/classes/service/testGet.java. But, in the tutorial or Java Web video, Eclipse goes to a complete url like http://localhost:8080/slwebservice/test/ or something.
I'm using Windows 7, Java SDK 1.7, Eclipse Luna and Tomcat 7.0. I'm not familiar with Java.
Here is my web.xml :
<?xml version="1.0" encoding="UTF-8"?>
<web-app version="2.5" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">
<servlet>
<servlet-name>myrest</servlet-name>
<servlet-class>org.glassfish.jersey.servlet.ServletContainer</servlet-class>
<init-param>
<param-name>service</param-name>
<param-value>testGet</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>myrest</servlet-name>
<url-pattern>/*</url-pattern>
</servlet-mapping>
</web-app>
When I click run, it seems that there are no exceptions on Tomcat. Here is my Tomcat log :
十月 05, 2015 9:07:28 下午 org.apache.tomcat.util.digester.SetPropertiesRule begin
警告: [SetPropertiesRule]{Server/Service/Engine/Host/Context} Setting property 'source' to 'org.eclipse.jst.jee.server:slervice' did not find a matching property.
十月 05, 2015 9:07:28 下午 org.apache.catalina.startup.VersionLoggerListener log
信息: Server version: Apache Tomcat/7.0.64
十月 05, 2015 9:07:28 下午 org.apache.catalina.startup.VersionLoggerListener log
信息: Server built: Aug 19 2015 17:18:06 UTC
十月 05, 2015 9:07:28 下午 org.apache.catalina.startup.VersionLoggerListener log
信息: Server number: 7.0.64.0
十月 05, 2015 9:07:28 下午 org.apache.catalina.startup.VersionLoggerListener log
信息: OS Name: Windows 7
十月 05, 2015 9:07:28 下午 org.apache.catalina.startup.VersionLoggerListener log
信息: OS Version: 6.1
十月 05, 2015 9:07:28 下午 org.apache.catalina.startup.VersionLoggerListener log
信息: Architecture: amd64
十月 05, 2015 9:07:28 下午 org.apache.catalina.startup.VersionLoggerListener log
信息: Java Home: C:\Program Files\Java\jdk1.7.0_79\jre
十月 05, 2015 9:07:28 下午 org.apache.catalina.startup.VersionLoggerListener log
信息: JVM Version: 1.7.0_79-b15
十月 05, 2015 9:07:28 下午 org.apache.catalina.startup.VersionLoggerListener log
信息: JVM Vendor: Oracle Corporation
十月 05, 2015 9:07:28 下午 org.apache.catalina.startup.VersionLoggerListener log
信息: CATALINA_BASE: D:\javatest\slservice\.metadata\.plugins\org.eclipse.wst.server.core\tmp0
十月 05, 2015 9:07:28 下午 org.apache.catalina.startup.VersionLoggerListener log
信息: CATALINA_HOME: C:\Program Files\Apache Software Foundation\Tomcat 7.0
十月 05, 2015 9:07:28 下午 org.apache.catalina.startup.VersionLoggerListener log
信息: Command line argument: -Dcatalina.base=D:\javatest\slservice\.metadata\.plugins\org.eclipse.wst.server.core\tmp0
十月 05, 2015 9:07:28 下午 org.apache.catalina.startup.VersionLoggerListener log
信息: Command line argument: -Dcatalina.home=C:\Program Files\Apache Software Foundation\Tomcat 7.0
十月 05, 2015 9:07:28 下午 org.apache.catalina.startup.VersionLoggerListener log
信息: Command line argument: -Dwtp.deploy=D:\javatest\slservice\.metadata\.plugins\org.eclipse.wst.server.core\tmp0\wtpwebapps
十月 05, 2015 9:07:28 下午 org.apache.catalina.startup.VersionLoggerListener log
信息: Command line argument: -Djava.endorsed.dirs=C:\Program Files\Apache Software Foundation\Tomcat 7.0\endorsed
十月 05, 2015 9:07:28 下午 org.apache.catalina.startup.VersionLoggerListener log
信息: Command line argument: -Dfile.encoding=GBK
十月 05, 2015 9:07:28 下午 org.apache.catalina.core.AprLifecycleListener lifecycleEvent
信息: The APR based Apache Tomcat Native library which allows optimal performance in production environments was not found on the java.library.path: C:\Program Files\Java\jdk1.7.0_79\bin;C:\Windows\Sun\Java\bin;C:\Windows\system32;C:\Windows;C:/Program Files/Java/jdk1.7.0_79/bin/../jre/bin/server;C:/Program Files/Java/jdk1.7.0_79/bin/../jre/bin;C:/Program Files/Java/jdk1.7.0_79/bin/../jre/lib/amd64;C:\Program Files\Java\jdk1.7.0_79\bin;D:\JAVASDK\android_sdk\tools;C:\Windows\system32;C:\Windows;C:\Windows\System32\Wbem;C:\Windows\System32\WindowsPowerShell\v1.0\;C:\Program Files\Lenovo\Bluetooth Software\;C:\Program Files\Lenovo\Bluetooth Software\syswow64;C:\Program Files (x86)\ATI Technologies\ATI.ACE\Core-Static;c:\PWRS\shared;C:\Program Files (x86)\Microsoft SQL Server\80\Tools\BINN;C:\Program Files (x86)\Microsoft SQL Server\80\Tools\Binn\;C:\Program Files\Microsoft SQL Server\90\Tools\binn\;C:\Program Files (x86)\Microsoft SQL Server\90\Tools\binn\;C:\Program Files (x86)\Microsoft SQL Server\90\DTS\Binn\;C:\Program Files (x86)\Microsoft SQL Server\90\Tools\Binn\VSShell\Common7\IDE\;C:\Program Files (x86)\Microsoft Visual Studio 8\Common7\IDE\PrivateAssemblies\;C:\Program Files (x86)\Sybase\SQL Anywhere 8\win32;C:\Program Files (x86)\Sybase\Shared\win32;C:\Program Files (x86)\Sybase\Shared\Sybase Central 4.1;C:\Program Files\Microsoft SQL Server\90\DTS\Binn\;C:\Program Files (x86)\Sybase\Shared\PowerBuilder;;C:\Program Files (x86)\Sybase\SQL Anywhere 10\x64;C:\Program Files (x86)\Sybase\SQL Anywhere 10\win32;C:\Program Files (x86)\Sybase\SQL Anywhere 10\Sybase Central 5.0.0\win32;C:\Program Files\SQL Anywhere 12\bin64;C:\Program Files\SQL Anywhere 12\bin32;C:\Program Files (x86)\Sybase\PowerBuilder 12.5;C:\Windows\Microsoft.NET\Framework\v4.0.30319;C:\Program Files\Microsoft\Web Platform Installer\;C:\Program Files (x86)\Microsoft ASP.NET\ASP.NET Web Pages\v1.0\;C:\Program Files\Microsoft SQL Server\110\Tools\Binn\;C:\Program Files (x86)\MySQL\MySQL Fabric 1.5.4 & MySQL Utilities 1.5.4 1.5\;C:\Program Files (x86)\MySQL\MySQL Fabric 1.5.4 & MySQL Utilities 1.5.4 1.5\Doctrine extensions for PHP\;C:\Program Files (x86)\Windows Kits\8.1\Windows Performance Toolkit\;C:\Program Files (x86)\Microsoft SDKs\TypeScript\1.0\;C:\Program Files\Microsoft SQL Server\120\Tools\Binn\;C:\apache-maven\bin;;D:\eclipse;;.
十月 05, 2015 9:07:28 下午 org.apache.coyote.AbstractProtocol init
信息: Initializing ProtocolHandler ["http-bio-8080"]
十月 05, 2015 9:07:28 下午 org.apache.coyote.AbstractProtocol init
信息: Initializing ProtocolHandler ["ajp-bio-8009"]
十月 05, 2015 9:07:28 下午 org.apache.catalina.startup.Catalina load
信息: Initialization processed in 698 ms
十月 05, 2015 9:07:28 下午 org.apache.catalina.core.StandardService startInternal
信息: Starting service Catalina
十月 05, 2015 9:07:28 下午 org.apache.catalina.core.StandardEngine startInternal
信息: Starting Servlet Engine: Apache Tomcat/7.0.64
十月 05, 2015 9:07:29 下午 org.apache.catalina.loader.WebappClassLoader validateJarFile
信息: validateJarFile(D:\javatest\slservice\.metadata\.plugins\org.eclipse.wst.server.core\tmp0\wtpwebapps\slervice\WEB-INF\lib\javax.servlet-api-3.0.1.jar) - jar not loaded. See Servlet Spec 3.0, section 10.7.2. Offending class: javax/servlet/Servlet.class
十月 05, 2015 9:07:30 下午 org.apache.catalina.startup.TldConfig execute
信息: At least one JAR was scanned for TLDs yet contained no TLDs. Enable debug logging for this logger for a complete list of JARs that were scanned but no TLDs were found in them. Skipping unneeded JARs during scanning can improve startup time and JSP compilation time.
十月 05, 2015 9:07:31 下午 org.apache.coyote.AbstractProtocol start
信息: Starting ProtocolHandler ["http-bio-8080"]
十月 05, 2015 9:07:31 下午 org.apache.coyote.AbstractProtocol start
信息: Starting ProtocolHandler ["ajp-bio-8009"]
十月 05, 2015 9:07:31 下午 org.apache.catalina.startup.Catalina start
信息: Server startup in 2515 ms
Any help would be appreciated.
Regards
Ken
What are you using here? SpringMVC? No idea what you are asking for... I assume because you are chinese...
Either way it looks like spring, therefore this segment should be changed,
<servlet-mapping>
<servlet-name>myrest</servlet-name>
<url-pattern>/</url-pattern> // remove the *
</servlet-mapping>
</web-app>