日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

用axis开发webservice实践

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

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

什么是Axis?
Axis
本質上就是一個SOAP引擎,提供創建服務器端、客戶端和網關SOAP操作的基本框架。Axis目前版本是為Java編寫的,不過為C++的版本正在開發中。

配置webservice具體步驟:

1.???? 安裝weblogic

2.???? 配置一個web應用,如“"lijunjiee$softwareeauser_projectsdomainslijjdomainapplications cntapws “。

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

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

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

?

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

開發webservice流程

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

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

<?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>

?<--要配置的內容start,注意每一個要發布成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>

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

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

?????? <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>

<--要配置的內容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發布成功了。

Java?webservice客戶端編程

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

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

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

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

3.???????? 把產生的文件copy到你的工程中,再寫一個webservice調用測試類,如下:

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的全部工作。大功告成了!

聯系作者: lijj_72@hotmail.com

轉載于:https://www.cnblogs.com/cy163/archive/2008/03/09/1097169.html

總結

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

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。