无法使用Tomcat 8和Java 8使Resteasy工作
我试图使用Java8(v45)和Tomcat8(v23)创建一个简单的基于resteasy的API,但是我没有看到我的调用导致任何流量或日志活动 我的web.xml如下所示无法使用Tomcat 8和Java 8使Resteasy工作,java,rest,tomcat,resteasy,Java,Rest,Tomcat,Resteasy,我试图使用Java8(v45)和Tomcat8(v23)创建一个简单的基于resteasy的API,但是我没有看到我的调用导致任何流量或日志活动 我的web.xml如下所示 <?xml version="1.0" encoding="ISO-8859-1"?> <web-app xmlns="http://java.sun.com/xml/ns/j2ee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
<?xml version="1.0" encoding="ISO-8859-1"?>
<web-app xmlns="http://java.sun.com/xml/ns/j2ee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_3_0.xsd"
version="3.0">
<display-name>Test</display-name>
<description>Test</description>
<servlet>
<servlet-name>resteasy</servlet-name>
<servlet-class>org.jboss.resteasy.plugins.server.servlet.HttpServletDispatcher</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>resteasy</servlet-name>
<url-pattern>/restfulservices/*</url-pattern>
</servlet-mapping>
<!-- Auto scan REST service -->
<context-param>
<param-name>resteasy.scan</param-name>
<param-value>true</param-value>
</context-param>
<!-- this should be the same URL pattern as the servlet-mapping property -->
<context-param>
<param-name>resteasy.servlet.mapping.prefix</param-name>
<param-value>/restfulservices</param-value>
</context-param>
<listener>
<listener-class>org.jboss.resteasy.plugins.server.servlet.ResteasyBootstrap</listener-class>
</listener>
<resource-ref>
<description>Oracle Datasource example</description>
<res-ref-name>jdbc/cboxDs</res-ref-name>
<res-type>javax.sql.DataSource</res-type>
<res-auth>Container</res-auth>
</resource-ref>
<!-- Environment entry examples -->
<env-entry>
<env-entry-name>test</env-entry-name>
<env-entry-type>java.lang.String</env-entry-type>
<env-entry-value>dev</env-entry-value>
</env-entry>
</web-app>
部署后,当我点击以下URL时:
我希望日志中会有一些活动,但我什么也没看到。我已经验证了我的服务器在端口10120上运行,并且我的日志正常运行。有什么想法吗?您的servlet配置映射到以/restfulservices开头的URL,如下所述:
<servlet-mapping>
<servlet-name>resteasy</servlet-name>
<url-pattern>/restfulservices/*</url-pattern>
</servlet-mapping>
@Path("/restfulservices /dihService")
public class testService {
所以它不会被找到。您需要向类映射路径添加restfulservices
,如下所述:
<servlet-mapping>
<servlet-name>resteasy</servlet-name>
<url-pattern>/restfulservices/*</url-pattern>
</servlet-mapping>
@Path("/restfulservices /dihService")
public class testService {
我也有类似的问题。我发现在tomcat中,您总是有一个额外的路径(目前我不知道如何更改)。检查tomcat manager应用程序,您将在那里找到部署的应用程序所需的路径。然后您应该能够使用 顺便说一下,我使用了与您相同的注释结构,因此Juned的答案是不正确的 问候
斯蒂芬谢谢朱纳德。我尝试了您的建议,但在我的日志中仍然没有看到任何内容,并且我继续收到同一URL的404错误。通常somepath是您的项目/war的名称。似乎唯一可以更改此行为的方法是将war文件重命名为所需的路径名。如果您只想让resteasy成为路径的第一部分,则需要将war文件重命名为resteasy.war。