XSD,JaxWS和Glassfish

时间:2009-09-08 14:34:54

标签: web-services netbeans xsd glassfish

我有一个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?

1 个答案:

答案 0 :(得分:1)

看起来,当从NetBeans部署并且生成自己的xsd时,glassfish无法识别您的xsd。

首先,验证部署的版本是否使用了正确的xsd。从NetBeans部署利用目录部署,例如它不会部署ear文件,而是部署项目目录中的内容。