gpt4 book ai didi

java - 在 Jersey 中,如何指定仅显示资源的最小 application.wadl?

转载 作者:太空宇宙 更新时间:2023-11-04 11:45:36 25 4
gpt4 key购买 nike

例如,我想要以下形式的内容:

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<application xmlns="http://wadl.dev.java.net/2009/02">
<doc xmlns:jersey="http://jersey.java.net/" jersey:generatedBy="Jersey: 1.18 11/22/2013 01:21 AM" />
<grammars />
<resources base="https://localhost/plugh/">
....
</resources>
/application>

最佳答案

我正在回答我自己的问题,以分享我学到的东西。

定义WadlGeneratorConfig的子类,您在其中定义了一个不执行任何操作的 WadlGenerator 语法。

  package com.try1234;


import java.util.List;

import com.sun.jersey.api.wadl.config.WadlGeneratorConfig;
import com.sun.jersey.api.wadl.config.WadlGeneratorDescription;
import com.sun.jersey.server.wadl.generators.WadlGeneratorGrammarsSupport;

public class PlughWadlGeneratorConfig extends WadlGeneratorConfig
{
@Override
public List<WadlGeneratorDescription> configure()
{
return
generator(WadlGeneratorGrammarsSupport.class)
.prop("grammarsStream", "application-grammars.xml")
.prop("overrideGrammars", true)
.descriptions();
}
}

定义一个空的application-grammars.xml

<grammars xmlns="http://wadl.dev.java.net/2009/02"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:xi="http://www.w3.org/1999/XML/xinclude">
</grammars>

确保它位于 Web 应用程序的类路径上,例如,在 Maven 样式的目录结构中,该文件位于 target/classes 中。

修改您的 web.xml 以使用 WadlGeneratorConfig 的子类。添加这些行:

<init-param>
<param-name>com.sun.jersey.config.property.WadlGeneratorConfig</param-name>
<param-value>com.try1234.PlughWadlGeneratorConfig</param-value>
</init-param>

加载您的 Web 应用程序,此 URL 上的以下 GET 应该可以工作:

https://localhost/plugh/application.wadl

此解决方案适用于 Jersey 1.18。

注意:空语法元素的基本原理是我遇到了https://java.net/jira/browse/JAXB-411 ;通过不产生任何 ,我能够避免 IllegalArgumentException。

引用文献: http://razvancaraghin.blogspot.com/2014/01/html-documentation-for-your-rest.html

Troubles with WADL / generated XSD using Jersey with a contract-first approach

关于java - 在 Jersey 中,如何指定仅显示资源的最小 application.wadl?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42379664/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com