REST Tomcat Root URL web.xml @Path



好吧,我有一个问题与我的REST应用程序,它工作得很好,直到我开始改变URL/应用程序的上下文..

我可以在https://url/RESTservice/rest/restmethod下访问我的服务,但我想将其更改为https://url/rest/restmethod,我做了一些更改,但恢复这些似乎不能解决问题。

从ServiceMain.java…

@Path("/")
public class ServiceMain extends Application

在web.xml文件之后…

<servlet>
    <servlet-name>bob-rest-service</servlet-name>
    <servlet-class>org.glassfish.jersey.servlet.ServletContainer</servlet-class>
    <init-param>
        <param-name>jersey.config.server.provider.packages</param-name>
        <param-value>de.bob</param-value>
    </init-param>
    <init-param>
        <param-name>jersey.config.server.provider.classnames</param-name>
        <param-value>org.glassfish.jersey.filter.LoggingFilter;org.glassfish.jersey.moxy.json.MoxyFeature;org.glassfish.jersey.media.multipart.MultiPartFeature</param-value>
    </init-param>
</servlet>
<servlet-mapping>
    <servlet-name>bob-rest-service</servlet-name>
    <url-pattern>/rest/*</url-pattern>
</servlet-mapping>

maven pom.xml…

<build>
    <finalName>RESTservice</finalName>
    <plugins>
        <plugin>
            <artifactId>maven-war-plugin</artifactId>
            <version>2.6</version>
            <configuration>
                <failOnMissingWebXml>false</failOnMissingWebXml>
            </configuration>
        </plugin>
    </plugins>
</build>

最后一件事是Eclipse上的Tomcat模块视图,它指向"/RESTservice",并在项目->属性-> Web项目设置->上下文根目录中:"RESTservice"。

这是我的实际设置,现在的问题在于,当我调用我的休息方法时,我得到HTTP 404,他们在星期五工作得很好,直到我开始改变路径。

错误日志:

Jun 27, 2016 9:57:25 AM org.glassfish.jersey.filter.LoggingFilter log
INFORMATION: 14 * Server has received a request on thread http-bio-443-exec-8
14 > POST https://bob.de/RESTservice/rest/login
14 > accept-encoding: gzip,deflate
14 > connection: Keep-Alive
14 > content-length: 127
14 > content-type: application/x-www-form-urlencoded
14 > host: bob.de
14 > user-agent: Apache-HttpClient/4.5.2 (Java/1.8.0_91)
Jun 27, 2016 9:57:25 AM org.glassfish.jersey.filter.LoggingFilter log
INFORMATION: 14 * Server responded with a response on thread http-bio-443-exec-8
14 < 404

编辑:我想知道的是,当我有类似的问题,我有ClassNotFound异常和Hibernate查询没有显示,一旦它工作的Hibernate的东西显示。那么我使用Hibernate会有问题吗?

编辑2:似乎资源没有加载,由于缺乏经验,我现在遇到了很大的问题

我们为应用程序使用的一般URL是https://Ip:Port/ApplicationName。在您的情况下,您使用下面的url,工作良好https://url/RESTservice/rest/restmethod。在此Url中,RESTservice是应用程序名称。现在您想要更改为Url中缺少应用程序名称的其他Url。在Url中添加应用程序名称,这样就可以正常工作了

为测试目的创建了一个新的工作区,它立即工作,使用eclipse!

编辑:我现在也得到了URL,因为我想没有应用程序名称,因此只需双击服务器浏览器下的tomcat实例->单击模块->选择您的应用->编辑->删除路径中的URL:

最新更新