如何使用Jersey 1.7生成WADL文件

时间:2013-10-17 10:17:53

标签: java rest jersey

我创建了一个hello world REST服务,现在我想生成WADL文件。

我环顾四周,看到我可以这样打电话:

http://localhost:8090/application.wadl

但是我的情况并没有得到任何结果。我正在使用带有Eclipse Indigo的Jersey 1.7并在Apache 7上运行

我也试着打电话:

http://localhost:8090/<myapplicattion_name>.wadl但仍然没有结果。

Jersey 1.7是否支持此功能?如果是的话,我做错了什么?

web.xml文件如下所示:

enter image description here

谢谢

2 个答案:

答案 0 :(得分:27)

您的应用在Apache中的名称是什么,即“上下文”?假设名称是“restApp”。试试这个:

http://localhost:8090/restApp/application.wadl

或者,如果你的servlet映射是:

<servlet-mapping>
  <servlet-name>RESTService</servlet-name>
  <url-pattern>/company/rest/*</url-pattern>
</servlet-mapping>

..它会是:

http://localhost:8090/restApp/company/rest/application.wadl

答案 1 :(得分:2)

通常采用这种模式:

http://<hostname>:<port>/<PROJECTNAME>/<servlet URL Pattern>/application.wadl

假设您的项目部署desc(web.xml)如下所示:

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" id="WebApp_ID" version="3.0">
  <display-name>Restful Web Application</display-name>

    <servlet>
        <servlet-name>jersey-helloworld-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.example.rest.jersey</param-value>
        </init-param>
        <load-on-startup>1</load-on-startup>
    </servlet>

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

然后网址将是:http://localhost:8080/JAXRS-HelloWorld/rest/application.wadl

就我而言:

JAXRS_HelloWorld is project name
rest is url pattern