Java端通過CXF調用.NET端服務
今天在項目的過程中,java服務端使用cxf動態調用.net服務的時候碰到的一些問題,現將筆記記錄如下,已被日后查看。
1、CXF是 IONA的OpenSource ESB Celtix與 號稱最快的Soap協議棧 XFire合并的 apache Incubate 項目。
CXF是一個JAX-WS API的實現。
CXF支持多種binding,transport。
CXF支持也支持除JAX-WS之外的服務模型,例如JBI,CORBA,SCA等。
2、網上資料:http://www.cnblogs.com/yg_zhang/archive/2010/11/15/1877658.html
3、在myeclipse上生成.net端的web service代理類,即web Service Client,步驟>右鍵項目>新建>其他>MyEclipse>Web Service>Web Service Client
4、C#調用Java服務參考資料:http://blog.csdn.net/cheng110110/article/details/6440002
5、Java與.NET通過wenservice進行相互調用:http://www.ibeifeng.com/tech.php?id=6105
6、
- View Code
- /**
- * PubService返回Stirng類型,參數Stirng類型
- */
- @Override
- public String PubService(String data)
- {
- String str = Usual.mEmpty;
- String mReturn = "0001";
- String[] mStr = data.split(",");
- if (mStr[0].equals("inlogin") && mStr[1].equals("inlogin"))
- {
- mReturn = "000";
- }
- String serviceURL = "http://192.168.0.35/com.net/InService.asmx";
- try
- {
- JaxWsProxyFactoryBean factory = new JaxWsProxyFactoryBean();
- // 這里也可用myeclipse建立Web Service Client,引用對象.class
- factory.setServiceClass(InServiceSoap.class);
- // 這里指定URL路徑,如果InServiceSoap這個不是一個接口類的話,
- //下面這句代碼會報錯,提示不是一個接口
- //在使用java cxf的過程中,一定要使用接口。
- factory.setAddress(serviceURL + "?wsdl");
- //QName函數的兩個參數,第一個是命名空間,第二個是webservice的服務名
- //第一個參數在.net服務發布時可以找到,也就是targetnamespace,
- //第二個參數在java的接口實現類中可以找到,也就是serviceName。
- factory.setServiceName(new QName("http://con.java.service/", "wss"));
- //InServiceSoap是一個接口,由.net web Service Client生成。
- InServiceSoap client = (InServiceSoap) factory.create();
- //通過生成的.net web Service Client調用服務的方法publishInformation
- str = client.publishInformation(mStr[0], mReturn, "20000", "dfadasd");
- System.out.println("str:調用.net接口: "+str);
- client = null;
- factory = null;
- }
- catch (Exception e)
- {
- // TODO: handle exception
- e.printStackTrace();
- }
- finally
- {
- }
- return mReturn;
- }
原文鏈接:http://www.cnblogs.com/cnblogs-lin/archive/2012/05/11/2496568.html
【編輯推薦】