在Websphere服务器中部署时,如何对应用程序进行Rest API调用?

时间:2016-03-17 12:14:44

标签: java jax-rs

我能够将我的JAX-RS Jersey应用程序部署到WebSphere服务器中,但是当我进行示例rest rest api调用时,它会给出跟随错误。

网址是:http://:9080 // hello / santhosh

Web.xml中

<servlet>
    <servlet-name>jersey-serlvet</servlet-name>
    <servlet-class>com.sun.jersey.spi.container.servlet.ServletContainer</servlet-class>
    <init-param>
        <param-name>com.sun.jersey.config.property.packages</param-name>
        <param-value>com.mkyong.rest</param-value>
    </init-param>
    <load-on-startup>1</load-on-startup>
</servlet>

<servlet-mapping>
    <servlet-name>jersey-serlvet</servlet-name>
    <url-pattern>/rest/*</url-pattern>
</servlet-mapping>

错误是:

Error 404: java.io.FileNotFoundException: SRVE0190E: File not found: /hello/santhosh.

如何解决此问题?

3 个答案:

答案 0 :(得分:0)

在任何服务器上部署应用程序时,您将拥有它的名称(至少是war文件的名称)。我们假设您的应用程序在websphere上部署为 myApp 。然后你的电话应该是

http://HostName:9080/myApp/hello/santhosh

如果资源类上的@Path注释指向 santhosh

答案 1 :(得分:0)

如果你唯一的servlet映射是/ rest /你认为你的客户端必须要求/ rest / -relative。

答案 2 :(得分:0)

如果您的应用的上下文根是“appINFO”(来自其中一条评论),并且您的servlet映射是“/ rest / *”,那么您应该通过调用http://:9080 / appINFO / rest来访问您的应用/你好/ santhosh。只需为主机输入适当的值即可。

编辑:如果您在WebSphere Liberty中部署,则不需要使用Jersey,因此它应该简化您的部署和所需的库。看看这个link,它逐步解释了如何做到这一点。