好吧,我有一个问题与我的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: