我使用JAX-WS制作了一个小型Web服务。WSDL文件有这样的TYPES元素。
<types>
<xsd:schema>
<xsd:import namespace="http://ws.poc.mawia/" schemaLocation="http://localhost:777/ws/hello?xsd=1"/>
</xsd:schema>
</types>
Web服务的URL是http://localhost:777/ws/hello?wsdl
,XSD是http://localhost:777/ws/hello?xsd=1
。位于不同位置的XSD模式文件具有这样的数据类型定义。
...
...
<xs:complexType name="student">
<xs:sequence>
<xs:element name="name" type="xs:string" minOccurs="0"/>
<xs:element name="rollNo" type="xs:int"/>
</xs:sequence>
</xs:complexType>
...
...
我看到的大多数WSDL文件通常在WSDL文件本身中有完整的XSD定义,但JAX-WS将其放置在不同的位置。
应该是这样吗?如何配置JAX-WS将所有XSD定义放在一个WSDL文件中?
你的方法没有任何问题。WSDL使用URL指向另一个WSDL是可以的。
如果不需要,请使用@WebService注释的wsdlLocation属性提及wsdl位置。但同样,使用这种方法,您必须手动修改wsdl。
应该是这样吗?
将XSD与WSDL分离是JAX-WS中的默认行为,您不必太担心它。最新的WS-Framework(包括WCF)通常能够处理这个问题。根据XSD的大小,导入它可能会使WSDL更具可读性。对于一个小型web服务来说,拥有一个嵌入式模式肯定会更容易,但导入它也不是什么大问题。
如何配置JAX-WS将所有XSD定义放在一个WSDL文件中?
我不知道有什么直接的方法可以让运行时将模式嵌入到WSDL中,但有一种解决方法可以实现这一点:
您可以实现4。通过自定义@WebService
注释。这可能看起来有点像这样:
@WebService( wsdlLocation = "MyWebService.wsdl")
public class MyWebService { .... }
问题内容: 我有一个已导入xsd的wsdl,此xsd具有类似如下的限制: 因此,我想细想一下,当我通过netbeans将这个耳朵部署到glassfish上时,将对传入的数据进行验证,但事实并非如此。在将数据传递给我的@WebService对象并转换为Java对象之前,是否需要进行任何调用以确保数据经过验证。 问题答案: 使用SchemaValidation批注。 请注意,它仅适用于文档/文字样式的
我有一个JAX-WS注释的Web服务,当我将其部署到WildFly 8.1.0 Final中时,我有如下内容: 当我想要这样的东西时: 因此,基本上,我希望WildFly/JAX-WS将一些类型放在一个单独的XSD模式文件中,而不是仅仅在WSDL文件中显示它们。 我可以通过一些注释或一些配置文件来执行此操作吗?
我有一个带有jaxb-impl.jar的第三方jar,并将其包含在清单类路径中。问题是,提供自己的JAXB版本(不管它是哪个版本)似乎会破坏JAX-WS中的SoapFaultBuilder。 根据非官方的JAXB指南,Sun在将JAXB折叠到JDK中时似乎故意更改了包名,以避免与独立版本发生冲突。但是,JDK附带的SoapFaultBuilder(我相信是JAX-WS的一部分)明确依赖于新的内部包
JAX-WS (JavaTM API for XML-Based Web Services)规范是一组XML web services的JAVA API。JAX-WS允许开发者可以选择RPC-oriented或者message-oriented 来实现自己的web services。 在 JAX-WS中,一个远程调用可以转换为一个基于XML的协议例如SOAP。在使用JAX-WS过程中,开发者不需要
Apache CXF WebService 没有话说,享受沉默 showcase项目已演示了JAX-WS2.0 + CXF 的最重要特性, 其中客户端在测试用例里. SOAP这个名字,本身就是个笑话,一点都不Simple。其他一些WS-*协议,包括安全,附件等都不再看好,因此SpringSide4.0没什么更新。 测试工具依然是SoapUI。 Tips 1. CXF自动生成的WSDL与WADL文件
我正在使用Apache Tomcat v6服务器。在创建新的网络服务时,我获得了“Apache Axis”、“Apache Axis2”和“Apache CXF2. x”的网络服务运行时选项。 是否可以将运行时设置为“JAX-RPC”或“JAX WS”? 编辑: 我正在使用Eclipse IDE