我这里提供服务,方法的参数是一个我自己定义的JAVABEAN,请问怎么把这个JAVABEAN里的属性配置在WSDL里,我现在生成的WSDL怎么弄都没有参数的定义.

解决方案 »

  1.   

    首先,你定义的这个javabean是不是具有无参的构造函数和属性的setter、getter方法,如果没有,在传递数据时会有问题,发布服务时不会有问题
    如果你的javabean不满足这个条件,可以使用适配器来适配你的javabean,这样的话应该没有问题,给你举个例子:
    我要发布的方法是 public void connect(WfConnectInfo info);
    其中WfConnectInfo 是自定义的一个javabean,但是它没有无参构造函数,加了一个适配器,把它是配成WfConnectInfoEntity。 发布出来的描述如下:- <xs:complexType name="connect">
    - <xs:sequence>
      <xs:element minOccurs="0" name="arg0" type="tns:wfConnectInfoEntity" /> 
      </xs:sequence>
      </xs:complexType>
    - <xs:complexType name="wfConnectInfoEntity">
    - <xs:sequence>
      <xs:element minOccurs="0" name="baseSessionId" type="xs:string" /> 
      <xs:element minOccurs="0" name="password" type="xs:string" /> 
      <xs:element name="txType" type="xs:unsignedShort" /> 
      <xs:element minOccurs="0" name="userId" type="xs:string" /> 
      </xs:sequence>
      </xs:complexType>
    如果有问题,可以继续提问,最近一直在研究这方面的东西,呵呵
      

  2.   

    谢谢你,但用适配器还要新建一些其他的类,请问有没有其他的方法,比如注释或配置文件的方式?
    我知道XFIRE的参数配置是在接口的同包下建立一个aegis.xml的配置文件,比较简洁,CXFD作为它的升级版,应该也有类似的吧
      

  3.   

    Cxf框架支持多种数据绑定规范,有JAXB,Aegis,它们的使用方式是不一样的,可以通过注释来绑定方法的参数和返回类型。
    我使用的是jaxb数据绑定,没有用过Aegis,呵呵
    新建类并不影响性能,可是尝试一下,关于配置文件的做法,正在研究中。
      

  4.   

    首先,你定义的这个javabean是不是具有无参的构造函数和属性的setter、getter方法,如果没有,在传递数据时会有问题,发布服务时不会有问题 
    如果你的javabean不满足这个条件,可以使用适配器来适配你的javabean,这样的话应该没有问题,给你举个例子: 
    我要发布的方法是 public void connect(WfConnectInfo info); 
    其中WfConnectInfo 是自定义的一个javabean,但是它没有无参构造函数,加了一个适配器,把它是配成WfConnec…