日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 >

用axis开发webservice实践

發(fā)布時間:2025/4/16 73 豆豆
生活随笔 收集整理的這篇文章主要介紹了 用axis开发webservice实践 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

什么是SOAP
SOAP
是一個基于XML的用于應(yīng)用程序之間通信數(shù)據(jù)編碼的傳輸協(xié)議。最初由微軟和Userland Software提出,隨著不斷地完善和改進,SOAP很快被業(yè)界廣泛應(yīng)用。

什么是Axis?
Axis
本質(zhì)上就是一個SOAP引擎,提供創(chuàng)建服務(wù)器端、客戶端和網(wǎng)關(guān)SOAP操作的基本框架。Axis目前版本是為Java編寫的,不過為C++的版本正在開發(fā)中。

配置webservice具體步驟:

1.???? 安裝weblogic

2.???? 配置一個web應(yīng)用,如“"lijunjiee$softwareeauser_projectsdomainslijjdomainapplications cntapws “。

3.???????? apache網(wǎng)站上下載axis-bin-1_2_1.tar.gz,解壓后copycntapws下面。

4.???????? 打開“http://localhost:7001/console“,配置cntapws web應(yīng)用。

5.???????? axis1.2weblogic8.1有沖突,原因是weblogic 本身攜帶的webservice.jar使用的舊的javax.xml.soap.*,而不是像axis使用J2EE1.4新的版本。解決方案是在WEB-INF/weblogic.xml文件中如下的配置:

?

6.???????? http://localhost:8080/axis/happyaxis.jsp地址,可以顯示你發(fā)布的webservice是否配置成功,如果顯示必須的包缺失,則你的webservice不能正常運行。

開發(fā)webservice流程

1.???????? 寫普通的java類,該類中有你要發(fā)布到webservice上的有關(guān)方法。

2.???????? 配置server-comfig.xml, 把你要發(fā)布的方法寫入該文件。具體內(nèi)容如下:

<?xml version="1.0" encoding="UTF-8"?>

<deployment xmlns="http://xml.apache.org/axis/wsdd/" xmlns:java="http://xml.apache.org/axis/wsdd/providers/java">

?<globalConfiguration>

?<parameter name="adminPassword" value="admin"/>

?<parameter name="attachments.Directory" value="C:eclipseworkspaceookstoreWEB-INFattachments"/>

?<parameter name="attachments.implementation" value="org.apache.axis.attachments.AttachmentsImpl"/>

?<parameter name="sendXsiTypes" value="true"/>

?<parameter name="sendMultiRefs" value="true"/>

?<parameter name="sendXMLDeclaration" value="true"/>

?<parameter name="axis.sendMinimizedElements" value="true"/>

?<requestFlow>

?? <handler type="java:org.apache.axis.handlers.JWSHandler">

??? <parameter name="scope" value="session"/>

?? </handler>

?? <handler type="java:org.apache.axis.handlers.JWSHandler">

??? <parameter name="scope" value="request"/>

??? <parameter name="extension" value=".jwr"/>

?? </handler>

?</requestFlow>

?</globalConfiguration>

?<handler name="LocalResponder" type="java:org.apache.axis.transport.local.LocalResponder"/>

?<handler name="Authenticate" type="java:org.apache.axis.handlers.SimpleAuthenticationHandler"/>

?<handler name="URLMapper" type="java:org.apache.axis.handlers.http.URLMapper"/>

?<service name="Version" provider="java:RPC">

?<parameter name="allowedMethods" value="getVersion"/>

?<parameter name="className" value="org.apache.axis.Version"/>

?</service>

?<--要配置的內(nèi)容start,注意每一個要發(fā)布成webservice的類都要配置成一個service如下à

?<service name="webserviceproxy" provider="java:RPC">

?????? <parameter name="className" value="com.copia.webservice.server.proxy.WebServiceProxy"/>

?????? <parameter name="allowedMethods" value="*"/>

<!—具體某個方法說明-->

?????? <operation name="login" returnType="ns:LoginOutServiceBean">

?????? ?????? <parameter name="branchNo" type="xsd:string"/>

?????? ?????? <parameter name="userId" type="xsd:string"/>

?????? ?????? <parameter name="password" type="xsd:string"/>

?????? ?????? <parameter name="certificateNo" type="xsd:string"/>??

?????? </operation>

<!—如果該方法的參數(shù)有基本類型和對象類型,則不要聲明,webservice能夠找到相關(guān)的類及方法-->

<!—聲明涉及到的所有類及其父類,引用類,還有它們的相關(guān)類,類似與對象樹遍歷,某個類聲明缺失也會導(dǎo)致運行失敗-->

?????? <typeMapping deserializer="org.apache.axis.encoding.ser.BeanDeserializerFactory"??

?????? encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"

?????? qname="ns:LoginOutServiceBean"

?????? serializer="org.apache.axis.encoding.ser.BeanSerializerFactory"

?????? type="java:com.copia.core.module.security.login.LoginOutServiceBean" xmlns:ns="webserviceproxy"/>

?

??????

??????

?????? <typeMapping deserializer="org.apache.axis.encoding.ser.BeanDeserializerFactory"??

?????? encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"

?????? qname="ns:User"

?????? serializer="org.apache.axis.encoding.ser.BeanSerializerFactory"

?????? type="java:com.copia.core.client.User" xmlns:ns="webserviceproxy"/>

??????

?????? <typeMapping deserializer="org.apache.axis.encoding.ser.BeanDeserializerFactory"??

?????? encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"

?????? qname="ns:GetBatchListInServiceBean"

?????? serializer="org.apache.axis.encoding.ser.BeanSerializerFactory"

?????? type="java:com.copia.core.module.batch.service.GetBatchListInServiceBean" xmlns:ns="webserviceproxy"/>

??????

?????? <typeMapping deserializer="org.apache.axis.encoding.ser.BeanDeserializerFactory"??

?????? encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"

?????? qname="ns:GetBatchListOutServiceBean"

?????? serializer="org.apache.axis.encoding.ser.BeanSerializerFactory"

?????? type="java:com.copia.core.module.batch.service.GetBatchListOutServiceBean" xmlns:ns="webserviceproxy"/>

??????

?????? <typeMapping deserializer="org.apache.axis.encoding.ser.BeanDeserializerFactory"??

?????? encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"

?????? qname="ns:BatchJobDefBean"

?????? serializer="org.apache.axis.encoding.ser.BeanSerializerFactory"

?????? type="java:com.copia.core.module.batch.service.BatchJobDefBean" xmlns:ns="webserviceproxy"/>??????

??????

?????? <typeMapping deserializer="org.apache.axis.encoding.ser.BeanDeserializerFactory"??

?????? encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"

?????? qname="ns:ValueObjectPage"

?????? serializer="org.apache.axis.encoding.ser.BeanSerializerFactory"

?????? type="java:com.copia.core.voa.ValueObjectPage" xmlns:ns="webserviceproxy"/>

??????

?????? <typeMapping deserializer="org.apache.axis.encoding.ser.BeanDeserializerFactory"??

?????? encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"

?????? qname="ns:ValueObjectColInfo"

?????? serializer="org.apache.axis.encoding.ser.BeanSerializerFactory"

?????? type="java:com.copia.core.voa.ValueObjectColInfo" xmlns:ns="webserviceproxy"/>

??????

?????? <typeMapping deserializer="org.apache.axis.encoding.ser.BeanDeserializerFactory"??

?????? encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"

?????? qname="ns:ValueObjectList"

?????? serializer="org.apache.axis.encoding.ser.BeanSerializerFactory"

?????? type="java:com.copia.core.voa.ValueObjectList" xmlns:ns="webserviceproxy"/>

??????

?????? <typeMapping deserializer="org.apache.axis.encoding.ser.BeanDeserializerFactory"??

?????? encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"

?????? qname="ns:PageInfo"

?????? serializer="org.apache.axis.encoding.ser.BeanSerializerFactory"

?????? type="java:com.copia.core.voa.PageInfo" xmlns:ns="webserviceproxy"/>

??????

?????? <typeMapping deserializer="org.apache.axis.encoding.ser.BeanDeserializerFactory"??

?????? encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"

?????? qname="ns:ValueObjectMetaData"

?????? serializer="org.apache.axis.encoding.ser.BeanSerializerFactory"

?????? type="java:com.copia.core.voa.ValueObjectMetaData" xmlns:ns="webserviceproxy"/>

??????

?? </service>

<--要配置的內(nèi)容endà

?<service name="AdminService" provider="java:MSG">

?<parameter name="allowedMethods" value="AdminService"/>

?<parameter name="enableRemoteAdmin" value="false"/>

?<parameter name="className" value="org.apache.axis.utils.Admin"/>

?<namespace>http://xml.apache.org/axis/wsdd/</namespace>

?</service>

?<transport name="local">

?<responseFlow>

?? <handler type="LocalResponder"/>

?</responseFlow>

?</transport>

?<transport name="http">

?<requestFlow>

?? <handler type="URLMapper"/>

?? <handler type="java:org.apache.axis.handlers.http.HTTPAuthHandler"/>

?</requestFlow>

?</transport>

</deployment>

3.???????? 在地址欄輸入http://localhost:7001/cntapws/services/webserviceproxy?wsdl,如沒有什么錯誤,則表示你的webservice發(fā)布成功了。

Java?webservice客戶端編程

1.???????? 啟動你配置好的weblobic

2.???????? 進入dos界面,在你的臨時目錄(任意目錄)下根據(jù)wsdl產(chǎn)生客戶文件,如下指令:

E:kk>java -Djava.ext.dirs=E:softwareeauser_projectsdomainslijjdomainappl

icationsaxisWEB-INFaxislib org.apache.axis.wsdl.WSDL2Java http://localhost:7001/cntapws/services/webserviceproxy?wsdl即可在kk目錄下產(chǎn)生有關(guān)文件

3.???????? 把產(chǎn)生的文件copy到你的工程中,再寫一個webservice調(diào)用測試類,如下:

public class TestWs {

?

?????? public static void main(String[] args) {

?????? ?????? WebServiceProxyService service = new WebServiceProxyServiceLocator();

????????????? try {

????????????? ?????? WebServiceProxy serviceProxy = service.getwebserviceproxy();

????????????? ?????? User user = new User();

????????????? ?????? user.setBranchNo("000001");

????????????? ?????? user.setClerkNo("1004");

????????????? ?????? GetBatchListInServiceBean in = new GetBatchListInServiceBean();

????????????? ?????? in.setCurPageNo(1);??????? ??????

????????????? ?????? String serviceName = "GetBatchListService";

????????????? ?????? GetBatchListOutServiceBean out = (GetBatchListOutServiceBean)serviceProxy.getBatchListService(user, in, serviceName);

????????????? ?????? BatchJobDefBean[] defBeans = out.getBatchJobDefBeans();

????????????? ????? for(int i = 0 ; i < defBeans.length ; i++){

???????????????????? ?????? System.out.println(defBeans[i].getBatchName());

???????????????????? }

?????? ?????? }catch(Exception ex){

????????????? ?????? ex.printStackTrace();

????????????? }

?????? }

}

這樣,我們就完成了webservice的全部工作。大功告成了!

聯(lián)系作者: lijj_72@hotmail.com

轉(zhuǎn)載于:https://www.cnblogs.com/cy163/archive/2008/03/09/1097169.html

總結(jié)

以上是生活随笔為你收集整理的用axis开发webservice实践的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。