请教对xfire和axis2都精通的高人

Octavus 2014-04-14 05:06:01
简单的说
用xfire写了一个简单的服务
长这个样子:

public interface DynamicDataWebService {

//http://192.168.0.23:8080/SeismicService/DynamicDataWebService.ws?wsdl

public PagingResult searchUnit8DynamicDataList(Unit8DynamicDataRequestParams params);

}


public class Unit8DynamicDataRequestParams {

final public String organizes = "1,2,3,4,5,6,7,8";

private String eqId;
private String types;
private String searchText;
private int pageNo;
private int pageSize;
private int total;

public String getXXX() {
return xxx;
}
public void setXXX(String xxx) {
this.xxx= xxx;
}
//......
}


在xfire中这样调用可以成功返回,没有任何问题
XMLStreamReader xmlReader = null;
Object[] results = null;
FileReader reader = new FileReader("request.xml");
xmlReader = STAXUtils.createXMLStreamReader(reader);
Client c = new Client(new URL(serviceUrl));
results = c.invoke("searchUnit8DynamicDataList", xmlReader);


request.xml如下:
<?xml version="1.0" encoding="UTF-8"?>
<searchUnit8DynamicDataList xmlns:par="http://param.ws.fineway.com">
<element>
<par:eqId>20130501021</par:eqId>
<par:pageNo>1</par:pageNo>
<par:pageSize>5</par:pageSize>
<par:searchText>sss</par:searchText>
<par:total>0</par:total>
<par:types/>
</element>
</searchUnit8DynamicDataList>


请问如果不改服务实现,那么在Axis2中如何调用它,java原生的调用方式也可以。
(本来写好服务给客户方的技术,调用的实例如上也提供了,可对方说已经用Axis2了,怎么也不乐意加上xfire的包,无奈只好求各位帮忙了)





...全文
172 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
  • 打赏
  • 举报
回复
引用 5 楼 baohuan_love 的回复:
使​用​A​x​i​s​和​x​f​i​r​e​发​布​调​用​W​e​b​S​e​r​v​i​c​e​shttp://download.csdn.net/detail/baohuan_love/7192195,应该可以解决你的问题。
楼主参考一下
  • 打赏
  • 举报
回复
axis 、axis2、cxf 这3种都可以用Eclipse开发服务端和客户端
jijihahalala 2014-04-14
  • 打赏
  • 举报
回复
用wsdl2java根据wsdl生成客户端代码直接调用生成的客户端代码可以啊
tony4geek 2014-04-14
  • 打赏
  • 举报
回复
实在不行 http 读 ,不用 soap ,wsdl
  • 打赏
  • 举报
回复
使​用​A​x​i​s​和​x​f​i​r​e​发​布​调​用​W​e​b​S​e​r​v​i​c​e​shttp://download.csdn.net/detail/baohuan_love/7192195,应该可以解决你的问题。
Octavus 2014-04-14
  • 打赏
  • 举报
回复
PS:已经试了无论是xfire还是Axis2,传统方式调用都会出错。唯独xfire的XmlReader参数方式调用可以成功,即:
Object[] org.codehaus.xfire.client.Client.invoke(String name, XMLStreamReader reader) throws Exception
所以请问各位熟悉Axis2或者java原生方式的朋友,有没有类似的直接传XML的方式方法??
tony4geek 2014-04-14
  • 打赏
  • 举报
回复
Octavus 2014-04-14
  • 打赏
  • 举报
回复
这是用xfire发布服务的配置文件:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN"
    "http://www.springframework.org/dtd/spring-beans.dtd">
<beans>
    <!-- 引入XFire预配置信息 -->
    <import resource="classpath:org/codehaus/xfire/spring/xfire.xml" />
    <!--定义访问的url-->
    <bean class="org.springframework.web.servlet.handler.SimpleUrlHandlerMapping">
       <property name="urlMap">             
           <map>                 
              <entry key="/DataTransportService.ws">                  
                  <ref bean="dataTransportService" />                 
              </entry>             
              <entry key="/DynamicDataWebService.ws">                  
                  <ref bean="dynamicDataWebService" />                 
              </entry>             
           </map>         
       </property>
    </bean>     

    <!-- 使用XFire导出器 -->
    <bean id="baseWebService" class="org.codehaus.xfire.spring.remoting.XFireExporter" lazy-init="false" abstract="true">
       <!-- 引用xfire.xml中定义的工厂 -->
       <property name="serviceFactory" ref="xfire.serviceFactory" />
       <!-- 引用xfire.xml中的xfire实例 -->
       <property name="xfire" ref="xfire" />
    </bean>
    
    <bean id="dataTransportService" parent="baseWebService">
       <!-- 业务服务bean -->
       <property name="serviceBean" ref="dataTransportBean" />
       <!-- 业务服务bean的窄接口类 -->
       <property name="serviceClass" value="com.fineway.ws.DataTransport" />
    </bean>
    
    <bean id="dynamicDataWebService" parent="baseWebService">
       <!-- 业务服务bean -->
       <property name="serviceBean" ref="dynamicDataWebServiceBean" />
<!--        <property name="implementationClass" value="com.fineway.ws.DynamicDataWebServiceImpl" /> -->
       <!-- 业务服务bean的窄接口类 -->
       <property name="serviceClass" value="com.fineway.ws.DynamicDataWebService" />
       
       <property name="name" value="DynamicDataWebService"/>  
       
    </bean>
</beans>
Octavus 2014-04-14
  • 打赏
  • 举报
回复
再提供一些详细信息: wsdl详细:
<wsdl:definitions xmlns:ns2="http://model.fineway.com" xmlns:ns1="http://param.ws.fineway.com" xmlns:ns3="http://enums.model.fineway.com" xmlns:soapenc12="http://www.w3.org/2003/05/soap-encoding" xmlns:tns="http://ws.fineway.com" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap11="http://schemas.xmlsoap.org/soap/envelope/" xmlns:wsdlsoap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:soapenc11="http://schemas.xmlsoap.org/soap/encoding/" xmlns:soap12="http://www.w3.org/2003/05/soap-envelope" targetNamespace="http://ws.fineway.com">
<wsdl:types>
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema" attributeFormDefault="qualified" elementFormDefault="qualified" targetNamespace="http://param.ws.fineway.com">
<xsd:complexType name="Unit8DynamicDataRequestParams">
<xsd:sequence>
<xsd:element minOccurs="0" name="eqId" nillable="true" type="xsd:string"/>
<xsd:element minOccurs="0" name="pageNo" type="xsd:int"/>
<xsd:element minOccurs="0" name="pageSize" type="xsd:int"/>
<xsd:element minOccurs="0" name="searchText" nillable="true" type="xsd:string"/>
<xsd:element minOccurs="0" name="total" type="xsd:int"/>
<xsd:element minOccurs="0" name="types" nillable="true" type="xsd:string"/>
</xsd:sequence>
</xsd:complexType>
</xsd:schema>
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema" attributeFormDefault="qualified" elementFormDefault="qualified" targetNamespace="http://ws.fineway.com">
<xsd:element name="searchUnit8DynamicDataList">
<xsd:complexType>
<xsd:sequence>
<xsd:element maxOccurs="1" minOccurs="1" name="in0" nillable="true" type="ns1:Unit8DynamicDataRequestParams"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<xsd:element name="searchUnit8DynamicDataListResponse">
<xsd:complexType>
<xsd:sequence>
<xsd:element maxOccurs="1" minOccurs="1" name="out" nillable="true" type="ns2:PagingResult"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
</xsd:schema>
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema" attributeFormDefault="qualified" elementFormDefault="qualified" targetNamespace="http://model.fineway.com">
<xsd:complexType name="PagingResult">
<xsd:sequence>
<xsd:element minOccurs="0" name="pageInfo" nillable="true" type="ns2:PageInfo"/>
<xsd:element minOccurs="0" name="resultList" nillable="true" type="ns2:ArrayOfDynamicData"/>
</xsd:sequence>
</xsd:complexType>
<xsd:complexType name="PageInfo">
<xsd:sequence>
<xsd:element minOccurs="0" name="pageNo" type="xsd:int"/>
<xsd:element minOccurs="0" name="pageSize" type="xsd:int"/>
<xsd:element minOccurs="0" name="total" type="xsd:int"/>
</xsd:sequence>
</xsd:complexType>
<xsd:complexType name="ArrayOfDynamicData">
<xsd:sequence>
<xsd:element maxOccurs="unbounded" minOccurs="0" name="DynamicData" nillable="true" type="ns2:DynamicData"/>
</xsd:sequence>
</xsd:complexType>
<xsd:complexType name="DynamicData">
<xsd:sequence>
<xsd:element minOccurs="0" name="alias" nillable="true" type="xsd:string"/>
<xsd:element minOccurs="0" name="createTime" type="xsd:dateTime"/>
<xsd:element minOccurs="0" name="dataDetail" nillable="true" type="ns2:DynamicDataDetail"/>
<xsd:element minOccurs="0" name="id" nillable="true" type="xsd:string"/>
<xsd:element minOccurs="0" name="isDel" nillable="true" type="xsd:string"/>
<xsd:element minOccurs="0" name="isPublic" nillable="true" type="xsd:string"/>
<xsd:element minOccurs="0" name="name" nillable="true" type="xsd:string"/>
<xsd:element minOccurs="0" name="ownUsers" nillable="true" type="ns2:ArrayOfUser"/>
</xsd:sequence>
</xsd:complexType>
<xsd:complexType name="ArrayOfUser">
<xsd:sequence>
<xsd:element maxOccurs="unbounded" minOccurs="0" name="User" nillable="true" type="ns2:User"/>
</xsd:sequence>
</xsd:complexType>
<xsd:complexType name="User">
<xsd:sequence>
<xsd:element minOccurs="0" name="createTime" type="xsd:dateTime"/>
<xsd:element minOccurs="0" name="id" nillable="true" type="xsd:int"/>
<xsd:element minOccurs="0" name="password" nillable="true" type="xsd:string"/>
<xsd:element minOccurs="0" name="state" nillable="true" type="ns3:State"/>
<xsd:element minOccurs="0" name="stopTime" type="xsd:dateTime"/>
<xsd:element minOccurs="0" name="userMessage" nillable="true" type="ns2:UserMessage"/>
<xsd:element minOccurs="0" name="userName" nillable="true" type="xsd:string"/>
</xsd:sequence>
</xsd:complexType>
<xsd:complexType name="UserMessage">
<xsd:sequence>
<xsd:element minOccurs="0" name="cardNumber" nillable="true" type="xsd:string"/>
<xsd:element minOccurs="0" name="department" nillable="true" type="xsd:string"/>
<xsd:element minOccurs="0" name="departmentCode" nillable="true" type="xsd:string"/>
<xsd:element minOccurs="0" name="doId" nillable="true" type="xsd:int"/>
<xsd:element minOccurs="0" name="email" nillable="true" type="xsd:string"/>
<xsd:element minOccurs="0" name="extend" nillable="true" type="xsd:string"/>
<xsd:element minOccurs="0" name="id" nillable="true" type="xsd:int"/>
<xsd:element minOccurs="0" name="mobile" nillable="true" type="xsd:string"/>
<xsd:element minOccurs="0" name="name" nillable="true" type="xsd:string"/>
<xsd:element minOccurs="0" name="officeNumber" nillable="true" type="xsd:string"/>
<xsd:element minOccurs="0" name="organization" nillable="true" type="ns2:Organization"/>
<xsd:element minOccurs="0" name="position" nillable="true" type="xsd:string"/>
</xsd:sequence>
</xsd:complexType>
<xsd:complexType name="Organization">
<xsd:sequence>
<xsd:element minOccurs="0" name="code" nillable="true" type="xsd:string"/>
<xsd:element minOccurs="0" name="id" nillable="true" type="xsd:int"/>
<xsd:element minOccurs="0" name="name" nillable="true" type="xsd:string"/>
<xsd:element minOccurs="0" name="otype" nillable="true" type="xsd:int"/>
</xsd:sequence>
</xsd:complexType>
<xsd:complexType name="DynamicDataDetail">
<xsd:sequence>
<xsd:element minOccurs="0" name="address" nillable="true" type="xsd:string"/>
<xsd:element minOccurs="0" name="creator" nillable="true" type="xsd:string"/>
<xsd:element minOccurs="0" name="dataItem" nillable="true" type="xsd:long"/>
<xsd:element minOccurs="0" name="dataSize" nillable="true" type="xsd:double"/>
<xsd:element minOccurs="0" name="dataType" nillable="true" type="ns2:DataType"/>
<xsd:element minOccurs="0" name="detail" nillable="true" type="xsd:string"/>
<xsd:element minOccurs="0" name="eqBasic" nillable="true" type="ns2:EQBasic"/>
<xsd:element minOccurs="0" name="eqId" nillable="true" type="xsd:string"/>
<xsd:element minOccurs="0" name="id" nillable="true" type="xsd:string"/>
<xsd:element minOccurs="0" name="isSys" nillable="true" type="xsd:string"/>
<xsd:element minOccurs="0" name="needer" nillable="true" type="xsd:string"/>
<xsd:element minOccurs="0" name="responsible" nillable="true" type="xsd:string"/>
</xsd:sequence>
</xsd:complexType>
<xsd:complexType name="EQBasic">
<xsd:sequence>
<xsd:element minOccurs="0" name="address" nillable="true" type="xsd:string"/>
<xsd:element minOccurs="0" name="eqDepth" type="xsd:float"/>
<xsd:element minOccurs="0" name="eqDirection" nillable="true" type="xsd:string"/>
<xsd:element minOccurs="0" name="eqId" nillable="true" type="xsd:string"/>
<xsd:element minOccurs="0" name="eqLatitude" type="xsd:double"/>
<xsd:element minOccurs="0" name="eqLongitude" type="xsd:double"/>
<xsd:element minOccurs="0" name="eqMag" type="xsd:float"/>
<xsd:element minOccurs="0" name="eqTime" type="xsd:dateTime"/>
<xsd:element minOccurs="0" name="pictureAddress" nillable="true" type="xsd:string"/>
<xsd:element minOccurs="0" name="provinceList" nillable="true" type="ns2:ArrayOfOrganization"/>
</xsd:sequence>
</xsd:complexType>
<xsd:complexType name="ArrayOfOrganization">
<xsd:sequence>
<xsd:element maxOccurs="unbounded" minOccurs="0" name="Organization" nillable="true" type="ns2:Organization"/>
</xsd:sequence>
</xsd:complexType>
<xsd:complexType name="DataType">
<xsd:sequence>
<xsd:element minOccurs="0" name="id" nillable="true" type="xsd:int"/>
<xsd:element minOccurs="0" name="name" nillable="true" type="xsd:string"/>
<xsd:element minOccurs="0" name="node" nillable="true" type="xsd:string"/>
<xsd:element minOccurs="0" name="superId" nillable="true" type="xsd:int"/>
</xsd:sequence>
</xsd:complexType>
</xsd:schema>
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema" attributeFormDefault="qualified" elementFormDefault="qualified" targetNamespace="http://enums.model.fineway.com">
<xsd:simpleType name="State">
<xsd:restriction base="xsd:string">
<xsd:enumeration value="ACTIVE"/>
<xsd:enumeration value="INACTIVE"/>
</xsd:restriction>
</xsd:simpleType>
</xsd:schema>
</wsdl:types>
<wsdl:message name="searchUnit8DynamicDataListResponse">
<wsdl:part name="parameters" element="tns:searchUnit8DynamicDataListResponse"></wsdl:part>
</wsdl:message>
<wsdl:message name="searchUnit8DynamicDataListRequest">
<wsdl:part name="parameters" element="tns:searchUnit8DynamicDataList"></wsdl:part>
</wsdl:message>
<wsdl:portType name="DynamicDataWebServicePortType">
<wsdl:operation name="searchUnit8DynamicDataList">
<wsdl:input name="searchUnit8DynamicDataListRequest" message="tns:searchUnit8DynamicDataListRequest"></wsdl:input>
<wsdl:output name="searchUnit8DynamicDataListResponse" message="tns:searchUnit8DynamicDataListResponse"></wsdl:output>
</wsdl:operation>
</wsdl:portType>
<wsdl:binding name="DynamicDataWebServiceHttpBinding" type="tns:DynamicDataWebServicePortType">
<wsdlsoap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http"/>
<wsdl:operation name="searchUnit8DynamicDataList">
<wsdlsoap:operation soapAction=""/>
<wsdl:input name="searchUnit8DynamicDataListRequest">
<wsdlsoap:body use="literal"/>
</wsdl:input>
<wsdl:output name="searchUnit8DynamicDataListResponse">
<wsdlsoap:body use="literal"/>
</wsdl:output>
</wsdl:operation>
</wsdl:binding>
<wsdl:service name="DynamicDataWebService">
<wsdl:port name="DynamicDataWebServiceHttpPort" binding="tns:DynamicDataWebServiceHttpBinding">
。。。字数有限制,省掉若几行。。。

67,513

社区成员

发帖
与我相关
我的任务
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
  • Java EE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧