离开java多年之后(我迷失在.net的土地上,如果它有用的话)我现在发现自己处于一个" java 7"商店(我告诉他们不会改变)我试图按照http://www.mkyong.com/webservices/jax-rs/jersey-hello-world-example/的教程进行操作,无论我做什么,无论我做什么,tomcat7都会报告一个非常快的404错误
过去几天我一直在搜索这个 - 直到现在它一直是一个低优先级 - 而且我找不到任何可以帮助我的东西。我的同龄人都没有想到这一点。我没有防火墙,我使用的是我团队中的其他所有人。我尝试了很多东西,而且我发现的每一个搜索结果根本就没用。
我不知道该怎么做;我目前被迫使用Kepler版本的Eclipse,所以我需要在eclipse中使用tomcat7,因为这个问题我完全没有进展。
项目是在maven中生成的" webapp" archetype然后导入到eclipse中,我没有对该教程中的字母做过唯一的事情就是运行" eclipse:eclipse在maven中我第一次这样做了它破坏了项目并创建了一个var-type maven / eclipse不理解的类路径(类型:4)所以我从头开始重新编写所有内容而不运行该命令,然后成功将其导入eclipse。
问题:我做错了什么?我该如何调试并帮助自己?
我认为tomcat通常有一个可用于帮助调试的管理器/ UI,但即使在查看了tomcat的文档之后,然后复制并粘贴他们说要用来启用它的配置,然后弹出tomcat服务并重新加载eclipse,无论我去哪个url / link,我仍然会得到404错误。
提前谢谢。
我得到的唯一日志如下:
May 06, 2015 2:32:40 PM org.apache.catalina.core.AprLifecycleListener init
INFO: The APR based Apache Tomcat Native library which allows optimal performance in production environments was not found on the java.library.path: C:\Users\duking\Desktop\ride-5.1.1-win64\OpenJDK\bin;C:\WINDOWS\Sun\Java\bin;C:\WINDOWS\system32;C:\WINDOWS;C:\ProgramData\Oracle\Java\javapath;C:\Program Files (x86)\RSA SecurID Token Common;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:\WINDOWS\System32\WindowsPowerShell\v1.0\;C:\Program Files (x86)\Microsoft Application Virtualization Client;C:\Program Files\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\DAL;C:\Program Files (x86)\Intel\Intel(R) Management Engine Components\IPT;C:\Program Files\Common Files\Hitachi ID\;C:\Program Files (x86)\Git\cmd;C:\Program Files\TortoiseGit\bin;C:\bin;C:\Program Files\Java\jdk1.7.0_79\bin;C:\Program Files (x86)\WinMerge;c:\cygwin64\bin;c:\cygwin64\usr\bin;C:\Program Files (x86)\Nmap;.
May 06, 2015 2:32:41 PM org.apache.coyote.AbstractProtocol init
INFO: Initializing ProtocolHandler ["http-nio-8080"]
May 06, 2015 2:32:41 PM org.apache.tomcat.util.net.NioSelectorPool getSharedSelector
INFO: Using a shared selector for servlet write/read
May 06, 2015 2:32:41 PM org.apache.coyote.AbstractProtocol init
INFO: Initializing ProtocolHandler ["http-nio-8081"]
May 06, 2015 2:32:41 PM org.apache.tomcat.util.net.NioSelectorPool getSharedSelector
INFO: Using a shared selector for servlet write/read
May 06, 2015 2:32:41 PM org.apache.coyote.AbstractProtocol init
INFO: Initializing ProtocolHandler ["http-nio-8082"]
May 06, 2015 2:32:41 PM org.apache.tomcat.util.net.NioSelectorPool getSharedSelector
INFO: Using a shared selector for servlet write/read
May 06, 2015 2:32:41 PM org.apache.coyote.AbstractProtocol init
INFO: Initializing ProtocolHandler ["http-bio-8083"]
May 06, 2015 2:32:41 PM org.apache.coyote.AbstractProtocol init
INFO: Initializing ProtocolHandler ["ajp-bio-8009"]
May 06, 2015 2:32:41 PM org.apache.catalina.startup.Catalina load
INFO: Initialization processed in 624 ms
May 06, 2015 2:32:41 PM org.apache.catalina.core.StandardService startInternal
INFO: Starting service Catalina
May 06, 2015 2:32:41 PM org.apache.catalina.core.StandardEngine startInternal
INFO: Starting Servlet Engine: Apache Tomcat/7.0.47
May 06, 2015 2:32:41 PM org.apache.coyote.AbstractProtocol start
INFO: Starting ProtocolHandler ["http-nio-8080"]
May 06, 2015 2:32:41 PM org.apache.coyote.AbstractProtocol start
INFO: Starting ProtocolHandler ["http-nio-8081"]
May 06, 2015 2:32:41 PM org.apache.coyote.AbstractProtocol start
INFO: Starting ProtocolHandler ["http-nio-8082"]
May 06, 2015 2:32:41 PM org.apache.coyote.AbstractProtocol start
INFO: Starting ProtocolHandler ["http-bio-8083"]
May 06, 2015 2:32:41 PM org.apache.coyote.AbstractProtocol start
INFO: Starting ProtocolHandler ["ajp-bio-8009"]
May 06, 2015 2:32:41 PM org.apache.catalina.startup.Catalina start
INFO: Server startup in 582 ms
答案 0 :(得分:0)
我不确定它是什么,但我设法让一个简单的工作在pom中使用这些:
<dependency>
<groupId>com.sun.jersey</groupId>
<artifactId>jersey-server</artifactId>
<version>1.17.1</version>
</dependency>
<dependency>
<groupId>com.sun.jersey</groupId>
<artifactId>jersey-core</artifactId>
<version>1.17.1</version>
</dependency>
<dependency>
<groupId>com.sun.jersey</groupId>
<artifactId>jersey-servlet</artifactId>
<version>1.17.1</version>
</dependency>
更新我的web.xml以使用v1 xml配置:
<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_2_5.xsd"
id="WebApp_ID" version="2.5">
<display-name>REST Web Application Demo</display-name>
<servlet>
<servlet-name>jersey-serlvet</servlet-name>
<!-- v1 -->
<servlet-class>com.sun.jersey.spi.container.servlet.ServletContainer</servlet-class>
<load-on-startup>1</load-on-startup>
<init-param>
<!-- v1 Packages Reference -->
<param-name>com.sun.jersey.config.property.packages</param-name>
<param-value>com.example.app</param-value>
</init-param>
</servlet>
<servlet-mapping>
<servlet-name>jersey-serlvet</servlet-name>
<url-pattern>/rest/*</url-pattern>
</servlet-mapping>
<welcome-file-list>
<welcome-file>index.html</welcome-file>
</welcome-file-list>
</web-app>
但现在可悲的是,我现在得到了一个非常不同的例外:
javax.servlet.ServletException: java.lang.NoClassDefFoundError: javax/ws/rs/MessageProcessingException
com.sun.jersey.spi.container.servlet.WebComponent.service(WebComponent.java:420)
com.sun.jersey.spi.container.servlet.ServletContainer.service(ServletContainer.java:558)
com.sun.jersey.spi.container.servlet.ServletContainer.service(ServletContainer.java:733)
javax.servlet.http.HttpServlet.service(HttpServlet.java:728)
org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51)
root cause
java.lang.NoClassDefFoundError: javax/ws/rs/MessageProcessingException
org.apache.cxf.jaxrs.impl.ResponseBuilderImpl.build(ResponseBuilderImpl.java:69)
com.example.app.ApiService.responseMsg(ApiService.java:27)
sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
java.lang.reflect.Method.invoke(Method.java:606)
com.sun.jersey.spi.container.JavaMethodInvokerFactory$1.invoke(JavaMethodInvokerFactory.java:60)
com.sun.jersey.server.impl.model.method.dispatch.AbstractResourceMethodDispatchProvider$ResponseOutInvoker._dispatch(AbstractResourceMethodDispatchProvider.java:205)
com.sun.jersey.server.impl.model.method.dispatch.ResourceJavaMethodDispatcher.dispatch(ResourceJavaMethodDispatcher.java:75)
com.sun.jersey.server.impl.uri.rules.HttpMethodRule.accept(HttpMethodRule.java:302)
com.sun.jersey.server.impl.uri.rules.RightHandPathRule.accept(RightHandPathRule.java:147)
com.sun.jersey.server.impl.uri.rules.ResourceClassRule.accept(ResourceClassRule.java:108)
com.sun.jersey.server.impl.uri.rules.RightHandPathRule.accept(RightHandPathRule.java:147)
com.sun.jersey.server.impl.uri.rules.RootResourceClassesRule.accept(RootResourceClassesRule.java:84)
com.sun.jersey.server.impl.application.WebApplicationImpl._handleRequest(WebApplicationImpl.java:1542)
com.sun.jersey.server.impl.application.WebApplicationImpl._handleRequest(WebApplicationImpl.java:1473)
com.sun.jersey.server.impl.application.WebApplicationImpl.handleRequest(WebApplicationImpl.java:1419)
com.sun.jersey.server.impl.application.WebApplicationImpl.handleRequest(WebApplicationImpl.java:1409)
com.sun.jersey.spi.container.servlet.WebComponent.service(WebComponent.java:409)
com.sun.jersey.spi.container.servlet.ServletContainer.service(ServletContainer.java:558)
com.sun.jersey.spi.container.servlet.ServletContainer.service(ServletContainer.java:733)
javax.servlet.http.HttpServlet.service(HttpServlet.java:728)
org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51)