Tio*_*oma 11 java web-services wadl resteasy
我需要为RESTful服务获取WADL文件.我知道如果使用球衣,它可以作为http://localhost:8080/application.wadl.但我使用RESTeasy.
在我的框架案例中我可以这样做吗?
acd*_*ior 11
第49章.RESTEasy WADL支持
49.1.RESTEasy WADL支持Servlet容器
49.2.RESTEasy WADL支持Sun JDK HTTP Server
49.3.RESTEasy WADL支持Netty Container
49.4.RESTEasy WADL支持Undertow容器RESTEasy有自己的支持为其资源生成WADL,它支持几个不同的容器.以下文本将向您展示如何在不同的容器中使用此功能.
49.1.RESTEasy WADL支持Servlet容器
RESTEasy WADL用于
ResteasyWadlServlet支持servlet容器.可以注册web.xml以启用WADL功能.这是一个显示ResteasyWadlServletin 的用法的示例web.xml:Run Code Online (Sandbox Code Playgroud)<servlet> <servlet-name>RESTEasy WADL</servlet-name> <servlet-class>org.jboss.resteasy.wadl.ResteasyWadlServlet</servlet-class> </servlet> <servlet-mapping> <servlet-name>RESTEasy WADL</servlet-name> <url-pattern>/application.xml</url-pattern> </servlet-mapping>上面的配置
web.xml显示了如何启用ResteasyWadlServlet和映射它/application.xml.然后可以从配置的URL访问WADL:Run Code Online (Sandbox Code Playgroud)/application.xml
有一个解决方法:maven-wadl-plugin由泽西人调用的maven插件也可以为使用RESTEasy编码的服务生成WADL.
这是如何使用它.
pom.xml:<build>
<plugins>
<plugin>
<groupId>com.sun.jersey.contribs</groupId>
<artifactId>maven-wadl-plugin</artifactId>
<version>1.17</version>
<executions>
<execution>
<id>generate</id>
<goals>
<goal>generate</goal>
</goals>
<phase>${javadoc-phase}</phase>
</execution>
</executions>
<configuration>
<wadlFile>${project.build.outputDirectory}/application.wadl
</wadlFile>
<formatWadlFile>true</formatWadlFile>
<baseUri>http://example.com:8080/rest</baseUri>
<packagesResourceConfig>
<param>com.example.rs.resource</param>
</packagesResourceConfig>
<wadlGenerators>
<wadlGeneratorDescription>
<className>com.sun.jersey.server.wadl.generators.WadlGeneratorApplicationDoc
</className>
<properties>
<property>
<name>applicationDocsFile</name>
<value>${basedir}/src/main/doc/application-doc.xml</value>
</property>
</properties>
</wadlGeneratorDescription>
<wadlGeneratorDescription>
<className>com.sun.jersey.server.wadl.generators.WadlGeneratorGrammarsSupport
</className>
<properties>
<property>
<name>grammarsFile</name>
<value>${basedir}/src/main/doc/application-grammars.xml</value>
</property>
</properties>
</wadlGeneratorDescription>
</wadlGenerators>
</configuration>
</plugin>
</plugins>
</build>
Run Code Online (Sandbox Code Playgroud)
注意baseUri和packagesResourceConfig元素.您必须更改它们以反映项目的配置.您可能还想更改插件的版本(我使用的是1.17).
创建src/main/doc/文件夹并在下面创建两个文件.
文件:application-doc.xml
内容:
<?xml version="1.0" encoding="UTF-8"?>
<applicationDocs targetNamespace="http://wadl.dev.java.net/2009/02">
<doc xml:lang="en" title="A message in the WADL">This is added to the start of the generated application.wadl</doc>
</applicationDocs>
Run Code Online (Sandbox Code Playgroud)
文件:application-grammars.xml
内容:
<?xml version="1.0" encoding="UTF-8" ?>
<grammars xmlns="http://wadl.dev.java.net/2009/02" />
Run Code Online (Sandbox Code Playgroud)
转到项目文件夹并运行以下命令:
$ mvn compile com.sun.jersey.contribs:maven-wadl-plugin:generate
Run Code Online (Sandbox Code Playgroud)
应该生成文件\target\classes\application.wadl(WADL本身)和\target\classes\xsd0.xsd(资源的模式 - 它由application.wadl使用).
根据需要编辑和使用它们.
PS.:请记住,这是maven-wadl-plugin的一个非常简单的用法.它可以做更多.要更好地了解它,请参阅http://search.maven.org/remotecontent?filepath=com/sun/jersey/samples/generate-wadl/1.12/generate-wadl-1.12-project.zip中的zip文件.
| 归档时间: |
|
| 查看次数: |
16227 次 |
| 最近记录: |