axisjava
① java怎麼使用axis調用webservice
方式一:生成客戶端代碼調用方式。
通過插件工具生成客戶端代碼進行調用。例如:存在一服務為 http://127.0.0.1:8000/axis2/services/SMSSendService?wsdl通過插件可以生成SMSSendServiceStub.Java和SMSSendServiceCallbackHandler.java類。調用的客戶端代碼如:
try {
SMSSendServiceStub stub=new SMSSendServiceStub();
SMSSendServiceStub.method1 m1=new SMSSendServiceStub.method1();
m1.setParam1("xxx");
try {
String ret=stub.multiSend(m1).get_return();
System.out.print(ret);
} catch (RemoteException e) {
e.printStackTrace();
}
} catch (AxisFault e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
方式二:使用axis2.rpc.client.RPCServiceClient方式調用。
調用的代碼簡單舉例如下:
import org.apache.axis2.addressing.EndpointReference;
import org.apache.axis2.client.Options;
import org.apache.axis2.rpc.client.RPCServiceClient;
......
try {
final String endpoint = "http://127.0.0.1:8000/axis2/services/SMSSendService";
String opName = "method1";
String param="xxx";
Object[] opArgs = new Object[] { param };
Class<?>[] opReturnType = new Class[] { String[].class };
RPCServiceClient serviceClient = new RPCServiceClient();//此處RPCServiceClient 對象實例建議定義成類中的static變數,否則多次調用會出現連接超時的錯誤。
Options options = serviceClient.getOptions();
EndpointReference targetEPR = new EndpointReference(endpoint);
options.setTo(targetEPR);
QName opQName = new QName("http://service.ws.sms.ipcc.ydtf.com",
opName);
Object[] ret = serviceClient.invokeBlocking(opQName, opArgs,
opReturnType);
System.out.println(((String[]) ret[0])[0]);
} catch (AxisFault e) {
e.printStackTrace();
}
② 怎麼用axis把wsdl文件生成相應的java類
安裝好axis,他自帶一個java2wsdl,直接用他就可以了
在命令通過java執行:
H:\axis-1_4\lib>java -cp g:/611 code/pm/src/share;axis.jar;axis-ant.jar;commons-
discovery-0.2.jar;commons-logging-1.0.4.jar;jaxrpc.jar;log4j-1.2.8.jar;saaj.jar;
wsdl4j-1.5.1.jar org.apache.axis.wsdl.Java2WSDL -o p3e.wsdl -n "urn:P3EWebservi
ces" -p"p3e.webservice" "urn:P3EWebservices" p3e.webservice.P3EWebservices
-cp後邊的包都要有,-o代表要轉的wsdl,-p代表包
③ 怎麼用axis 進行java web開發
axis 是webservice。
建議直接學習cxf,在apache官網有文檔、有例子
④ 如何解決java axis 調用webservice伺服器操作異常
axis自動生成的wsdl文件是有問題的,在他的wddlsoap標簽中會使用localhost作為訪問地址,
<wsdlsoap:address location="http://localhost:8080/Axis/services/Test"/>
這樣當然是只有本機訪問正常,其他機器訪問不了,解決辦法就是修改一下這個地址,比如的地址是10.154.23.153,那麼就把這里改為:
<wsdlsoap:address location="http://10.154.23.153:8080/Axis/services/Test"/>
這樣,問題就解決了。
⑤ 如何解決java axis 調用webservice伺服器操作異常
解決的代碼如下:
一、WebService在cs後台程序中的調用
A、通過命名空間和類名直接調用
示例:
WebService ws = new WebService();
string s = ws.HelloWorld();
B、通過添加WEB引用的方式調用,首先添加WEB引用,通過URL指向WEBSERVICE,
指定WEB引用名,假設為KK;
示例:
kk.WebService n = new kk.WebService();
string ss=n.HelloWorld();
二、WebService在前台頁面的JS 調用方法
1、首先通過下面的方法把Webservice在前台引用進來
2、然後就可以通過JS程序進行調用,示例如下:
function a()
{
WebService.HelloWorld(onresult);
}
//這里的onresult是回調函數
function onresult(result)
{
alert(result);
}
function b()
{
WebService.add(1,2,onreturn)
}
function onreturn(result)
{
alert(result);
}
//下面的'context'是上下文,可以通過回到函數通過重載的方式獲得;
function c()
{
WebService.div(1,1,onresultC,onerror,'context');
}
function onresultC(res,c)
{
alert(res);
alert(c);
}
//onerror是獲得異常信息的回調函數,下面給出了獲得異常信息的方法
function onerror(error)
{
var a="";
a=String.format("獲取伺服器端異常的具體類型:{0}\t\n獲取詳細的異常描述信息:{1}\t\n獲取造成異常的:{2}\t\n獲取伺服器端異常的堆棧
跟蹤信息:{3}\t\n獲取一個布爾值,表示異常是否是由於網路連接超時造成的{4}",
error.get_exceptionType(),
error.get_message(),
error.get_statusCode(),
error.get_stackTrace(),
error.get_timedOut())
alert(a);
}
a();
b();
c();
⑥ 如何解決javaaxis調用webservice伺服器操作異常
一、WebService在cs後台程序中的調用 A、通過命名空間和類名直接調用 示例: WebService ws = new WebService(); string s = ws.HelloWorld(); B、通過添加WEB引用的方式調用,首先添加WEB引用,通過URL指向WEBSERVICE, 指定WEB引用名,假設為KK; 示例: kk.WebService n = new kk.WebService(); string ss=n.HelloWorld(); 二、WebService在前台頁面的JS 調用方法 1、首先通過下面的方法把Webservice在前台引用進來2、然後就可以通過JS程序進行調用,示例如下:function a() { WebService.HelloWorld(onresult); } //這里的onresult是回調函數 function onresult(result) { alert(result); } function b() { WebService.add(1,2,onreturn) } function onreturn(result) { alert(result); } //下面的'context'是上下文,可以通過回到函數通過重載的方式獲得; function c() { WebService.div(1,1,onresultC,onerror,'context'); } function onresultC(res,c) { alert(res); alert(c); } //onerror是獲得異常信息的回調函數,下面給出了獲得異常信息的方法 function onerror(error) { var a=""; a=String.format("獲取伺服器端異常的具體類型:{0}\t\n獲取詳細的異常描述信息:{1}\t\n獲取造成異常的:{2}\t\n獲取伺服器端異常的堆棧 跟蹤信息:{3}\t\n獲取一個布爾值,表示異常是否是由於網路連接超時造成的{4}", error.get_exceptionType(), error.get_message(), error.get_statusCode(), error.get_stackTrace(), error.get_timedOut()) alert(a); } a(); b(); c(); 收起
⑦ 如何解決java axis 調用webservice伺服器操作異常
報錯信息為:AxisFaultfaultCode:{http://schemas.xmlsoap.org/soap/envelope/}Server.userExceptionfaultSubcode:faultString:java.net.ConnectException:Connectionrefused:connectfaultActor:faultNode:faultDetail:{http://xml.apache.org/axis/}stackTrace:java.net.ConnectException:Connectionrefused:connectatjava.net.PlainSocketImpl.socketConnect(NativeMethod)atjava.net.PlainSocketImpl.doConnect(PlainSocketImpl.java:333)atjava.net.PlainSocketImpl.connectToAddress(PlainSocketImpl.java:195)atjava.net.PlainSocketImpl.connect(PlainSocketImpl.java:182)atjava.net.SocksSocketImpl.connect(SocksSocketImpl.java:366)atjava.net.Socket.connect(Socket.java:516)atsun.reflect.NativeMethodAccessorImpl.invoke0(NativeMethod)atsun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)atsun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)atjava.lang.reflect.Method.invoke(Method.java:585)atorg.apache.axis.components.net.DefaultSocketFactory.create(DefaultSocketFactory.java:153)atorg.apache.axis.components.net.DefaultSocketFactory.create(DefaultSocketFactory.java:120)atorg.apache.axis.transport.http.HTTPSender.getSocket(HTTPSender.java:191)atorg.apache.axis.transport.http.HTTPSender.writeToSocket(HTTPSender.java:404)atorg.apache.axis.transport.http.HTTPSender.invoke(HTTPSender.java:138)atorg.apache.axis.strategies.InvocationStrategy.visit(InvocationStrategy.java:32)atorg.apache.axis.SimpleChain.doVisiting(SimpleChain.java:118)atorg.apache.axis.SimpleChain.invoke(SimpleChain.java:83)atorg.apache.axis.client.AxisClient.invoke(AxisClient.java:165)atorg.apache.axis.client.Call.invokeEngine(Call.java:2784)atorg.apache.axis.client.Call.invoke(Call.java:2767)atorg.apache.axis.client.Call.invoke(Call.java:2443)atorg.apache.axis.client.Call.invoke(Call.java:2366)atorg.apache.axis.client.Call.invoke(Call.java:1812)atcom.sendServer.TongWs.invokeWg(TongWs.java:114)atsun.reflect.NativeMethodAccessorImpl.invoke0(NativeMethod)atsun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)atsun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)atjava.lang.reflect.Method.invoke(Method.java:585)atorg.apache.axis.providers.java.RPCProvider.invokeMethod(RPCProvider.java:397)atorg.apache.axis.providers.java.RPCProvider.processMessage(RPCProvider.java:186)atorg.apache.axis.providers.java.JavaProvider.invoke(JavaProvider.java:323)atorg.apache.axis.strategies.InvocationStrategy.visit(InvocationStrategy.java:32)atorg.apache.axis.SimpleChain.doVisiting(SimpleChain.java:118)atorg.apache.axis.SimpleChain.invoke(SimpleChain.java:83)atorg.apache.axis.handlers.soap.SOAPService.invoke(SOAPService.java:454)atorg.apache.axis.server.AxisServer.invoke(AxisServer.java:281)atorg.apache.axis.transport.http.AxisServlet.doPost(AxisServlet.java:699)atjavax.servlet.http.HttpServlet.service(HttpServlet.java:710)atorg.apache.axis.transport.http.AxisServletBase.service(AxisServletBase.java:327)atjavax.servlet.http.HttpServlet.service(HttpServlet.java:803)atorg.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)atorg.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)atorg.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)atorg.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:175)atorg.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128)atorg.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)atorg.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)atorg.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:286)atorg.apache.coyote.http11.Http11Processor.process(Http11Processor.java:844)atorg.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:583)atorg.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:447)atjava.lang.Thread.run(Thread.java:595)axis自動生成的wsdl文件是有問題的,在他的wddlsoap標簽中會使用localhost作為訪問地址,這樣當然是只有本機訪問正常,其他機器訪問不了,解決法就是修改一下這個地址,比如的地址是10.154.23.153,那麼就把這里改為:這樣,問題就解決了。
⑧ 如何解決java axis 調用webservice伺服器操作異常
安裝Eclipse-jee,下載Axis2的最新版本Axis2 1.4.1 Release,其內部結構為 開發前配置:在Eclipse的菜單欄中,Window --> Preferences --> Web Service --> Axis2 Perferences,在Axis2 runtime location中選擇Axis2解壓縮包的位置,設置好後,點"OK"即行。 新建一個Java Project,命名為"WS_01",在"WS_01"項目上new --> other,找到"Web Services"下面的"Web Service"; 在出現的Web Services對象框,在Service implementation中點擊"Browse",進入Browse Classes對象框,查找到我們剛才寫的寫的CalculateService類。(如下圖)。點擊"ok",則回到 Web Service話框。 在Web Service對話框中,將Web Service type中的滑塊,調到"start service「的位置,將Client type中的滑塊調到"Test client"的位置。 在Web Service type滑塊圖的右邊有個"Configuration",點擊它下面的選項,進入Service Deployment Configuration對象框,在這里選擇相應的Server(我這里用Tomcat6.0)和Web Service runtime(選擇Apache Axis2) 點OK後,則返回到Web Service對話框,同理,Client type中的滑塊右邊也有"Configuration",也要進行相應的置,步驟同上。完成後,Next --> next即行。到了Server startup對話框,有個按鍵"start server",點擊它,則可啟動Tomcat伺服器了。 等啟完後,點擊"next -- > next",一切默認即行,最後,點擊完成。最後,出現如下界面:(Web Service Explorer),我們在這里便可測試我們的Web服務。 測試比較簡單,例如,我們選擇一個"plus"的Operation,出現下圖,在x的輸入框中輸入2,在y的 輸入框中輸入3,點擊"go",便會在status欄中顯示結果5.0。其他方法的測試也類似。
⑨ webservice 介面用java中的axis調用,java編程傳遞一個參數String[]給網路介面為什麼報錯
這個牽扯到數組序列化問題,前幾天讓我郁悶了好久。
最後是把數組表示為string,然後傳入的。
2種情況
1)數組序列化的時候因為伺服器端沒有序列方法,所以不能正常解析為數組參數;
2)序列化後所有的參數都為null..
⑩ java開發webservice客戶端時,使用axis需要哪些jar包
http://axis.apache.org/axis2/java/core/download.cgi