我有一个xsd,其中有很多模式限制,这个xsd在我们的wsdl中使用。当我们将耳朵部署到glassfish并在浏览器中调出wsdl和xsd时,我们所有的模式限制都被剥离了。为什么?如何消除剥离我们的限制。 这是一个片段:
<xsd:complexType name="len">
<xsd:sequence>
<xsd:element name="value" type="tns:dms_len"/>
<xsd:element name="new_value" type="tns:dms_len" minOccurs="0"></xsd:element>
</xsd:sequence>
<xsd:attribute name="action" type="tns:update_actions"></xsd:attribute>
</xsd:complexType>
以下是部署后的样子:
<!-- Published by JAX-WS RI at http://jax-ws.dev.java.net. RI's version is JAX-WS RI 2.1.3.1-hudson-749-SNAPSHOT. -->
...
<xs:complexType name="len">
<xs:sequence>
<xs:element name="value" type="xs:string"></xs:element>
<xs:element name="new_value" type="xs:string" minOccurs="0"></xs:element>
</xs:sequence>
<xs:attribute name="action" type="tns:update_actions"></xs:attribute>
</xs:complexType>
注意value和new_value现在只是简单的字符串。
更新: 这似乎只有在我使用netbeans进行部署时才会发生,当我从glassfish控制台部署时,模式限制仍然存在。为什么是netbeans?
答案 0 :(得分:1)
看起来,当从NetBeans部署并且生成自己的xsd时,glassfish无法识别您的xsd。
首先,验证部署的版本是否使用了正确的xsd。从NetBeans部署利用目录部署,例如它不会部署ear文件,而是部署项目目录中的内容。