社区
Web 开发
帖子详情
JAVA axis 调用 .net webservice
breezewj
2009-08-27 09:19:01
JAVA axis 调用 .net webservice
AXIS第一次调用 webservice 速度很快没有异常
第二次要么超时 要么一直卡着不动
急····
...全文
188
3
打赏
收藏
JAVA axis 调用 .net webservice
JAVA axis 调用 .net webservice AXIS第一次调用 webservice 速度很快没有异常 第二次要么超时 要么一直卡着不动 急····
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
3 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
bssoft2010
2011-09-16
打赏
举报
回复
我做了个测试的例子:发给你瞧瞧,顺便指点一下:
第一步:主测试方法TestGetAllStation
import java.util.ArrayList;
import java.util.List;
import org.apache.axis.client.Service;
import com.huawei.ticket.webxml.getalladdr.RequestGetAllAddr;
import org.tempuri.SaleFunction;
public class TestGetAllStation {
/**
* @param args
*/
public static void main(String[] args) {
try {
ArrayList list=null;
RequestGetAllAddr request=new RequestGetAllAddr();
System.out.println("调用GetAllAddr方法开始");
list=request.GetAllAddr("03", "0000");
System.out.println("list:====="+list);
}
catch (Exception e)
{
System.err.println(e.toString());
}
}
}
2.传递参数,并调用主方法SaleFunction()
import java.util.ArrayList;
import com.huawei.ticket.webxml.getalladdr.CAllAddrXML;
import com.huawei.ticket.service.AllAddrIntf;
import org.tempuri.SaleFunction;
import javax.xml.bind.JAXBElement;
public class RequestGetAllAddr {
public ArrayList GetAllAddr(String BusStation,String Guid)
{
ArrayList alladdr_list=null;
String OutputXML="";
String InputXML="";
//生成获取发车点信息的报文
if(BusStation.length()!=0 && Guid.length()!=0)
{
CAllAddrXML creXml=new CAllAddrXML();
InputXML=creXml.createXml(BusStation,Guid);
System.out.println("生成的报文信息InputXML:====="+InputXML);
}
//传递参数并调用主方法SaleFunction()
String resultXML="";
AllAddrIntf alladdrintf=new AllAddrIntf();
alladdr_list=alladdrintf.SaleFunction("GetAllAddr",InputXML,OutputXML,resultXML);
return alladdr_list;
}
}
3、生成报文中的inputxml
import java.io.ByteArrayInputStream;
import java.io.UnsupportedEncodingException;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
import org.jdom.Document;
import org.jdom.Element;
import com.huawei.ticket.search.GetAllAddr;
import org.jdom.input.SAXBuilder;
public class CAllAddrXML {
/*
* 创建获取发车点信息的Inputxml报文
*/
public String createXml(String BusStation,String Guid) {
StringBuffer sb = new StringBuffer();
// 生成报文
sb.append("<Input>");
sb.append("<Count>"+2+"</Count>");
sb.append("<BusStation>"+BusStation+"</BusStation>");
sb.append("<Guid>" +Guid+"</Guid>");
sb.append("</Input>");
return sb.toString();
}
/*
* 解析获取发车点信息的Outputxml报文
*/
public ArrayList parseXML(String OutputXML)
{
//声明解析后的Outputxml结果集
ArrayList<GetAllAddr> alladdrList = new ArrayList<GetAllAddr>();
//获取返回报文的根节点
ByteArrayInputStream bais = null;
try {
bais = new ByteArrayInputStream(OutputXML.getBytes("NewDataSet"));
} catch (UnsupportedEncodingException uee) {
uee.printStackTrace();
}
SAXBuilder builder = new SAXBuilder();
Document read_doc;
//解析返回的报文
try{
read_doc = builder.build(bais);
Element element = read_doc.getRootElement();
List bodyList = element.getChildren("Table");
Iterator it = bodyList.iterator();
while (it.hasNext()) {
//定义GetAllAddr的变量并获取所有的发车点信息包含字段
GetAllAddr all_addr=new GetAllAddr();
Element AllAddrInfo = (Element)it.next();
String str_addr=AllAddrInfo.getChildText("Addr");
String str_addrname=AllAddrInfo.getChildText("AddrName");
String str_busstation=AllAddrInfo.getChildText("BusStation");
String str_busstationname=AllAddrInfo.getChildText("BusStationName");
all_addr.setAddr(str_addr);
all_addr.setAddrName(str_addrname);
all_addr.setBusStation(str_busstation);
all_addr.setBusStationName(str_busstationname);
//将所有的结果储存到alladdrList里面,便于返回结果集
alladdrList.add(all_addr);
}
}catch(Exception e)
{
e.printStackTrace();
}
return alladdrList;
}
}
4、主方法函数
import java.net.URL;
import java.util.ArrayList;
import javax.xml.namespace.QName;
import org.apache.axis.client.Call;
import org.apache.axis.client.Service;
import com.huawei.ticket.webxml.getalladdr.CAllAddrXML;
import org.apache.axis.encoding.XMLType;
import javax.xml.rpc.ParameterMode;
public class AllAddrIntf {
public ArrayList SaleFunction(String Cmd,String InputXML,String OutputXML,String resultXML)
{
//解析后的输出结果集
ArrayList str_result=null;
try
{
//调用远程的服务器操作
String url="http://10.185.18.67/webservice/Service.svc?wsdl";
//String url="http://lenovo-282d43b3/webservice/Service.svc?wsdl";
String namespace="http://tempuri.org/";
Service service=new Service();
Call call=(Call)service.createCall();
call.setTargetEndpointAddress(new java.net.URL(url));
//调用.NET写的WebService
call.setUseSOAPAction(true);
call.setSOAPActionURI("http://tempuri.org/Sale/" + "SaleFunction");//URI格式:命名空间+方法名
//第二步,设置方法名时,不能只用一个字符串(调JAVA用法),而要用QName,并且构造QName时一定要加上命名空间
call.setOperationName(new QName(namespace,"SaleFunction"));
//第三步,需要传递参数时,一定要写上参数的变量名称,也是用带命名空间的QName表示。加了参数后要设置返回类型(可能只是axis)。
call.addParameter(new QName(namespace,"Cmd"),XMLType.XSD_STRING, ParameterMode.IN);
call.addParameter(new QName(namespace,"InputXML"),XMLType.XSD_STRING, ParameterMode.IN);
call.addParameter(new QName(namespace,"OutputXML"),XMLType.XSD_STRING, ParameterMode.INOUT);
call.addParameter(new QName(namespace,"resultXML"),XMLType.XSD_STRING, ParameterMode.INOUT);
call.setReturnType(XMLType.XSD_STRING);
//执行方法
String result =(String) call.invoke(new Object[] {Cmd,InputXML,OutputXML,resultXML});
//返回结果
System.out.println("OutputXML is=" + OutputXML);
System.out.println("result=" + result);
// 解析返回的String字符串
System.out.println("=======开始解析========");
CAllAddrXML parseXML = new CAllAddrXML();
str_result = parseXML.parseXML(OutputXML);
} catch (Exception e) {
System.err.println(e.toString());
}
return str_result;
}
}
breezewj
2009-08-27
打赏
举报
回复
结贴~
我对不住大家
最后调试出我竟然有一个连接忘关了··
郁闷····
现在已经OK 了···
jiazimo
2009-08-27
打赏
举报
回复
期待、、
axis
2
java
.net
.url_
axis
,
axis
2
调用
.net
的
webservice
package testClick.src.test;import
java
x.xml.namespace.QName;import org.apache.axiom.om.OMAbstractFactory;import org.apache.axiom.om.OMElement;import org.apache.axiom.om.OMFactory;import org.apache.axi...
java
使用
AXIS
2
调用
asp
.net
的
WebService
要求:按对方的要求把一串XML传给对方,对方返回一串XML结果.
对方使用的环境为ASP
.NET
下载
AXIS
2 包:
http://archive.apache.org/dist/ws/
axis
2/1_3/
axis
2-1.3-bin.zip
解压到E:/
axis
2-1.3目录. (目录按自己的系统更改)
在DOS下进入到E:/
axis
2-1.3/bin目录
根据wsdl文件描述,
java
使用
axis
调用
.net
发布的
webservice
接口返回对象类型
有问题请留言 有不对请指出 留记录 不废话 看代码 Service service = new Service(); String url = &amp;amp;quot;http://192.168.129.21:8010/Service.asmx&amp;amp;quot;; //在浏览器中打开url,可以找到SOAPAction: &amp;amp;quot;http://www.chinsoft.com.cn/SendMQ&a
java
调用
.net
生成的
WebService
(
axis
调用
)
一.准备部分 需要:
axis
2-1.4.1-bin.zip、
axis
2-1.4.1-war.zip 将
axis
2-1.4.1-war.zip 解压。然后在解压后的文件中找到
axis
2.war ,将其拷贝到tomcat的webapps目录下。启动tomcat。然后在浏览器地址栏中输入:http://localhost:8080/
axis
2/ 此时会自动安装Axi2。出现如下页面
Web 开发
81,111
社区成员
341,723
社区内容
发帖
与我相关
我的任务
Web 开发
Java Web 开发
复制链接
扫一扫
分享
社区描述
Java Web 开发
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章