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

歡迎訪問 生活随笔!

生活随笔

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

编程问答

java调用wcf控件的两种交互

發布時間:2024/9/27 编程问答 28 豆豆
生活随笔 收集整理的這篇文章主要介紹了 java调用wcf控件的两种交互 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
1.axis方式

package wsdl.axis;

import java.net.MalformedURLException;
import java.rmi.RemoteException;

import javax.xml.namespace.QName;
import javax.xml.rpc.ServiceException;

import org.apache.axis.client.Call;
import org.apache.axis.client.Service;

public class Test2 {

?/**
? * @param args
? */
?public static void main(String[] args) {
??String str = "";
??String endpoint = "http://172.50.9.161:4000/Marine/service";
??String namespace = "http://www.Service.Marine";
??String methodName = "Test2";
??Service service = new Service();
??Call call = null;
??try {
???call = (Call) service.createCall();
??} catch (ServiceException e1) {
???e1.printStackTrace();
??}
??try {
???call.setTargetEndpointAddress(new java.net.URL(endpoint));
??} catch (MalformedURLException e1) {
???e1.printStackTrace();
??}
??call.setUseSOAPAction(true);
??call.setSOAPActionURI("http://www.Service.Marine/IMarineService/Test2");
??call.setOperationName(new QName(namespace, methodName));
??call.addParameter(new javax.xml.namespace.QName(namespace, "strTest"),
????org.apache.axis.encoding.XMLType.XSD_STRING,
????javax.xml.rpc.ParameterMode.IN);// document訪問格式,必須
??call.setReturnType(org.apache.axis.encoding.XMLType.XSD_STRING);
??try {
???str = (String) call.invoke(new Object[] { "sss"});
??} catch (RemoteException e) {
???// TODO Auto-generated catch block
???e.printStackTrace();
???
??}
??System.out.println("服務器返回值是:" + str + "!");
?}
}

?

注意 1)這里需要注意的參數名稱問題,java的實參名稱要與.net的形參保持一致才能在.net端口接受到。

???????? 2)本地靜態調用的時候無錯誤,但是放在web工程下運行,程序返回等都正常,但是java控制臺會拋出找不到方法名稱的異常。目前還沒有找到具體原因

2.cxf方式

package cxf;

import javax.xml.namespace.QName;

import org.apache.cxf.endpoint.Client;
import org.apache.cxf.jaxws.endpoint.dynamic.JaxWsDynamicClientFactory;

public class CallDNet {
?/**
? * @param args
? */
?public static void main(String[] args) {
??Object[] replys = null;
??try {
???JaxWsDynamicClientFactory dcf = JaxWsDynamicClientFactory
?????.newInstance();
???Client client = dcf
?????.createClient("http://127.0.0.1:4000/Marine/service?wsdl");
???String namespace = "http://www.Service.Marine";
???replys = client.invoke(new QName(namespace, "Test2"), "dsadsadsa");
??} catch (Exception e) {
???e.printStackTrace();
??}
??for (Object o : replys) {
???// System.out.println(o);
??}
??System.out.println(replys[0]);
?}

}

?說明一下,2種jar同時存在一個工程下的時候,需要吧cxf的依賴包放在axis依賴包的前面加載。而且cxf形式的參數限制寬松,不需要對應具體參數名稱,而且參數個數多的時候系統也補會報錯

3.axis2 調用方式

package client;

import org.apache.axiom.om.OMAbstractFactory;
import org.apache.axiom.om.OMElement;
import org.apache.axiom.om.OMFactory;
import org.apache.axiom.om.OMNamespace;
import org.apache.axis2.AxisFault;
import org.apache.axis2.Constants;
import org.apache.axis2.addressing.EndpointReference;
import org.apache.axis2.client.Options;
import org.apache.axis2.client.ServiceClient;

public class Axis2ServiceClient {

?? ?public static void main(String[] args) throws AxisFault {
?? ??? ?EndpointReference targetEPR = new EndpointReference("http://172.50.9.159:4000/Marine/service?wsdl");
?? ??? ?OMFactory fac = OMAbstractFactory.getOMFactory();
?? ??? ?OMNamespace omNs = fac.createOMNamespace("http://www.Service.Marine", "tns");//命名空間
?? ??? ?OMElement method2 = fac.createOMElement("Test2", omNs);//要調用的接口方法名稱
?? ??? ?OMElement value1 = fac.createOMElement("strTest", omNs);//方法的第一個參數名稱
?? ??? ?value1.addChild(fac.createOMText(value1, "ccc"));//設定參數的值
?? ??? ?method2.addChild(value1);//方法設置參數

?? ??? ?Options options = new Options();
?? ??? ?options.setAction("http://www.Service.Marine/IMarineService/Test2");
?? ??? ?options.setTo(targetEPR);//設定webservice地址
?? ??? ?options.setTransportInProtocol(Constants.TRANSPORT_HTTP);//設定傳輸協議
?? ??? ?ServiceClient sender = new ServiceClient();
?? ??? ?sender.setOptions(options);

?? ??? ?OMElement result2 = sender.sendReceive(method2);//調用接口方法
?? ??? ?System.out.println(result2);//打印接口返回結果
?? ?}
}

最少依賴jar

總結

以上是生活随笔為你收集整理的java调用wcf控件的两种交互的全部內容,希望文章能夠幫你解決所遇到的問題。

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

主站蜘蛛池模板: 日日射视频 | 亚洲中文字幕久久无码 | 午夜国产在线观看 | 中文在线а√在线 | 日韩欧美视频网站 | 天天射天天爽 | 性xxxxxxxxx18欧美 | 国产精品7777 | 老妇女玩小男生毛片 | 奇米色在线 | 亚洲丁香花色 | 电影一区二区三区 | 一级黄色录像大片 | 亚洲国产成人无码av在线 | 亚洲伦理影院 | 国产精品海角社区 | 情侣黄网站免费看 | 久久久二区 | 日本性高潮视频 | 久久理论视频 | 大香依人| 国产内射一区 | 神马久久久久久久久久久 | www.黄色大片 | 天天干天天弄 | 日本免费一区二区三区 | 日韩性欧美 | 日本精品在线看 | 深夜的私人秘书 | av大全在线 | 影音先锋久久久久av综合网成人 | av午夜激情 | 亚洲区偷拍 | 老司机深夜视频 | 青青导航 | 成人欧美一区二区三区黑人孕妇 | 中文字幕在线观看视频一区二区 | a级欧美| 国产熟女高潮一区二区三区 | 国产成人精品一区 | 青青一区二区 | 日日狠狠久久偷偷四色综合免费 | 伊人网在线 | 日日干天天 | 美女视频黄的免费 | 久久久久久久久久99精品 | av解说在线观看 | 久久久久一级片 | 999这里有精品 | 91国内 | 久久久精品综合 | 蜜桃久久久 | 国产精品91在线 | 激情伊人网 | 在线免费观看视频a | 一本色道久久综合亚洲精品小说 | 国产成人福利 | 欧美一区二区精品 | 大胸美女被爆操 | 含羞草一区二区 | 特级西西www444人体聚色 | 最新亚洲精品 | 亚洲欧美日韩一区在线观看 | 国产麻豆一区 | 亚洲伦理一区二区三区 | 亚洲国产精品久久久久久久 | 成年人在线免费观看网站 | 国产专区精品 | www.五月天com | 欧美成人手机视频 | 欧美第十页| 亚洲青色在线 | 国产aⅴ精品一区二区三区久久 | 97人妻人人揉人人躁人人 | 狠狠操中文字幕 | 国产欧美日韩精品一区 | 精品国产一区二区三区在线 | 亚洲一区二区三区在线观看视频 | 国产中文字幕在线观看 | 在线观看中文字幕第一页 | 日韩免费福利 | 日本丰满少妇一区二区三区 | 国产成人精品视频在线观看 | 瑟瑟网站在线观看 | 国产精品香蕉 | 天堂一区 | 亚洲高清精品视频 | 男女爱爱网站 | 久久咪咪 | 激情九月天 | 国产精品久久久久久久一区探花 | 日本人xxxxxxxxx泡妞 | 日韩精品一区二区免费视频 | 欧美草逼网 | 亚洲天堂中文字幕在线观看 | 毛片官网 | 国产精品网友自拍 | 91视频色 | 夜色一区 |