我遇到了一个奇怪的问题,我的Web服务附带的架构与我的工作空间中的架构不匹配。在我的工作区中,元素具有以下定义:
<xsd:element name="checkFooBars" minOccurs="1" nillable="false">
<xsd:simpleType>
<xsd:restriction base="xsd:string">
<xsd:enumeration value="Y"/>
<xsd:enumeration value="N"/>
</xsd:restriction>
</xsd:simpleType>
</xsd:element>
可从应用程序(通过此URL:www.myapplication.com/MyApplicationHttpRouter/MyService/MyService_schema1.xsd
)访问的架构中的相同元素如下所示:
<xs:element name="checkFooBars" type="xs:string" />
这会导致服务的用户查看联机模式,而他们看不到我对该元素施加的限制。
有人知道这是怎么回事,还是为什么?
[从WSDL生成Java bean框架时缺少的是复制WSDL文件。有一个复选框“将WSDL复制到项目”。我设置了复选框,然后重新生成了Java代码。将WSDL复制到EJB项目的META-INF,并且服务实现将MyServiceSOAPImpl.java中@WebService
批注的wsdlLocation属性设置为META-INF/myService.WSDL
。我不喜欢文件夹布局,因此将其更改为META-INF/wsdl/MyService/myService.WSDL
(并更新了MyServiceSOAPImpl.java中的Java引用)-我注意到在RAD 7中无法指定目标目录,但是在RAD 8.5中。
我的Java WebService遇到相同的问题。