JAX WW Web服务中的模式验证

时间:2014-01-30 06:35:00

标签: web-services

我正在使用jax-ws和apache cxf开发Web服务,并使用代码优先方法。我想在我的服务中启用模式验证。为此,我已将cxf配置文件配置如下

<jaxws:endpoint id="testService"
implementorClass="com.test.impl.TestServiceImpl"
implementor="#testServiceImpl"
 address="/testService">
<jaxws:serviceFactory>
<ref bean="jaxws-and-aegis-service-factory"/>
 </jaxws:serviceFactory>
<jaxws:properties>
 <entry key="schema-validation-enabled" value="true"/>
 </jaxws:properties>
 </jaxws:endpoint>

Service,

@WebService
@SOAPBinding(style=SOAPBinding.Style.DOCUMENT,use=SOAPBinding.Use.LITERAL)

  public interface TestService {



 @WebMethod
String test(MyVo myVo) ;

}

MyVo,

    @XmlAccessorType(XmlAccessType.FIELD)
    @XmlType(name = "MyVo")
    public class MyVo {

   @XmlElement(name = "name", required = true)
   private String name;

     ............. // getter and setter

     }

但是在部署服务后,wsdl看起来像

      <xsd:complexType name="MyVo">
     <xsd:sequence>
     <xsd:element minOccurs="0" name="name" nillable="true" type="xsd:string" />

     </xsd:sequence>
       </xsd:complexType>

根据文档,minOccurs应为1(因为required = true)。

此外,我可以在MyVo对象中设置名称属性而无需调用服务。服务器没有错误。

我在jre \ lib文件夹和jdk \ lib文件夹中创建了一个已认可的目录,并将jaxb-api-2.2.jar和jaxws-api-2.2.1.jar放在那里。仍面临同样的问题。我使用的是jdk1.6.0_11。

由于

请指教。

0 个答案:

没有答案