netwebservicejava
① java作为客户端对.net webservice调用 Java报错
是你调用的时候出错了。。
② java 项目怎么调用.net写的webService,求源码。
发布.net webservice得到wsdl地址:(你的)http://222.92.47.171:8003/SZDataExchange/SZDataExchange.asmx?wsdl
根据wsdl2java工具包生成对应java客户端
publicstaticvoidmain(String[]args)throwsServiceException,RemoteException{
//TODOAuto-generatedmethodstub
Service1_Service1=newService1Locator();
Service1Soap_PortType_Service1Soap_PortType;
StringresultStr=null;
_Service1Soap_PortType=_Service1.getService1Soap();
resultStr=_Service1Soap_PortType.helloWorld("zybaby");
System.out.println(resultStr);
}
③ java接入.net webservice报400的错误
用来抛出io的错误,不仅仅是文件读写,还包括很多stream的读写,而且throws是用来放在函数定义的函数体前函数名后的,表示这个函数将会在出现异常的书后会抛出io异常,所以在以后的程序中调用这个函数的时候就必须用try和catch来捕获异常,否则编译会抱错,这主要涉及到java的安全机制,可能规模小的程序不见的比if判断更方便,可是在多人开发的规模比较大的程序开发过程中就能充分体会他的好处
④ .NET中怎么调用JAVA的WebService服务接口
以axis2来说,你需要对方提供AxisServiceStub类文件(就是wsdl文件),假入对方有一个ShowName的方法,我现在用axis2来调用,coding 如下
//初始化Sub类
AxisServiceStub stub = new AxisServiceStub();
//传递AxisServiceStub.ShowName对象,相关参数在这边赋值。
AxisServiceStub.ShowName command = new AxisServiceStub.ShowName();
command.setName("Hello!");
//取得返回值
//String name = stub.showName(command).get_return();
System.out.println(stub.showName(command).get_return());
⑤ Java访问.net的webservice,访问客户给的可以,但是访问免费的不行出现错误(400)Bad Request。要怎么解决
排查下你和webservice之间的错误:
1、免费的那边的webservice是否开启了访问限制,例如ip等限制。
2、免费的webservice的参数是否和你传递的相符。
3、网络是否可达,(ping下那边的地址)
⑥ 如何使用java做webservice和java使用.net的webservice
做webService服务,可以使用Axis、XFire、CXF等框架的支持。
个人建议你使用CXF。
下载个cxf的jar包,进入到bin文件夹下,你会看到很多可执行的命令,ms-dos中进入到此路径下,使用命令即可创建代码。
以下为生成java源代码的命令:
wsdl2java [-client](只生成客户端的包)-p [com.zte.ebs.hellocxf.client] -d c:\XXXX(输出目录) d:\XXXX.wsdl(wsdl存在路径)
如过你不想使用cxf,而使用其他的框架,则大同小异,到网上搜索一下即可。道理都是一样的。
⑦ java怎样调用.net写的webservice
可以自己加批处理如下
set Axis_Lib=.\lib
set Java_Cmd=java -Djava.ext.dirs=%Axis_Lib%
set Output_Path=.\source
set Package= com.msclient
%Java_Cmd% org.apache.axis.wsdl.WSDL2Java -o%Output_Path% -p%Package% http://localhost:8987/Service1.asmx?WSDL
生成客户端java类如下(CallService是我写的调用测试类,可忽略)public static void main(String[] args) throws ServiceException, RemoteException {
// TODO Auto-generated method stub
Service1 _Service1 = new Service1Locator();
Service1Soap_PortType _Service1Soap_PortType;
String resultStr = null;
_Service1Soap_PortType = _Service1.getService1Soap();
resultStr = _Service1Soap_PortType.helloWorld("zybaby");
System.out.println(resultStr);
}
⑧ java调用.net的webservice,报415错误,是咋回事
你好,提问者:
帮你查了一下前人总结的答案:
1.服务是不是通的?
2.如果是配合联调,可以抓取报文让对方排查
3..net中415错误,一般不是.net的程序问题。5开头的错误,一般都是.net程序的问题
4.HTTP 415 错误 – 不 支持的媒体类型(Unsupported media type)
1) 和请求中指定的媒体类型不一致,
2) 与该资源的当前数据不兼容,
3) 和请求中指定的 HTTP 方法不兼容。
如果对你有帮助,望采纳!如果解决了请回复下,让大家都了解下问题的原因!谢谢!
⑨ java 怎样调用.net 写的webservice
一. 使用axis1.x调用webservice方法
Axis的最常用版本:1.4和2.0版本。以下为1.4版本
核心代码:
// webserviceURL
service_url = "http://vip.cxcod.com/PodApi/GetPodStr.asmx?wsdl";
Service service = new Service();
Call call = (Call) service.createCall();
call.setTargetEndpointAddress(new java.net.URL(service_url));
// 设置要调用的方法
// http://intelink.net/是wsdl中definitions根节点的targetNamespace属性值
call.setOperationName(new QName("http://intelink.net/","GetStrByJobno"));
// 该方法需要的参数
call.addParameter("CustNo",
org.apache.axis.encoding.XMLType.XSD_STRING,
javax.xml.rpc.ParameterMode.IN);
call.addParameter("passwd",
org.apache.axis.encoding.XMLType.XSD_STRING,
javax.xml.rpc.ParameterMode.IN);
call.addParameter("Jobno",
org.apache.axis.encoding.XMLType.XSD_STRING,
javax.xml.rpc.ParameterMode.IN);
// 方法的返回值类型
call.setReturnType(org.apache.axis.encoding.XMLType.XSD_STRING);
// call.setUseSOAPAction(true); //call.setSOAPActionURI("http://intelink.net/GetStrByJobno");
// 调用该方法, new Object[] { CustNo, passwd, Jobno}为参数列表
String xmlStr = call.invoke(new Object[] { CustNo, passwd, Jobno}).toString();
} catch (Exception e) {
e.printStackTrace();
}
JAVA用这种方式调用webservice,需要注意的地方:
1. 服务器未能识别 HTTP 标头 SOAPAction 的值:
症状一:
Web Service + ASP.NET 应用程序部署到服务器默认目录中,在IE中用http://<服务器地址>/<程序目录名>/<默认启动页面名>发生“服务器未能识别 HTTP 标头 SOAPAction 的值”错误。
症状二:
在Java平台上调用.NET Web Service的服务时,出现"服务器未能识别 HTTP 标头 SOAPAction 的值"。
症状三:
在Java平台下调用.NET WEB Service,出现数据时有时无。
解决对策:
给.NET的WebService类(即.asmx文件下的类)添加属性[SoapDocumentService(RoutingStyle=SoapServiceRoutingStyle.RequestElement)]
小知识:
什么是SoapAction?它在WSDL中有何作用?
SOAPAction HTTP request header被用来标识SOAP HTTP请求的目的地,其值是个URI地址。SOAP发送并不限制格式、URI特征或其必须可解析,那么在这种情况下,发送一个HTTP SOAP请求时,其HTTP客户端必须使用/指明SOAPAction HTTP request header。
SOAPAction header的内容可以被用在服务端,诸如:防火墙适当的过滤基于HTTP的SOAP请求消息等场景。SOAPAction header的值为空串("")表示SOAP消息的目的地由HTTP请求的URI标识;无值则表示没有指定这条消息的目的地。
本人补充:
在.NET环境调用.NET WebService出现 “SOAPAction 值在 XML Web services 的所有方法中不唯一的错误”,也可以通过此法解决。
2. 为了Java能够调用WebService的方法,所以。NETP写的WebServiced的每个方法都要声明为Rpc方法,即添加"[SoapRpcMethod.....]".
例如:[WebMethod]
[SoapRpcMethod(Use=SoapBindingUse.Literal,Action= http://tempuri.org/HelloWorld", RequestNamespace = "http://tempuri.org/", ResponseNamespace = "http://tempuri.org/")]
3. 对返回值、参数的处理上:
应尽量将webservice方法的返回值、参数都写成字符串(String)不要使用复杂对象类型,这样便于在网络上传输。避免了复杂对象类型的不易转换问题。。。对于返回类型是字符串数组型的,可以设置返回类型为org.apache.axis.encoding.XMLType.SOAP_VECTOR或java.lang.String[].class.
二.利用xfire调用WebService
XFire是新一代的Java Web服务引擎,XFire使得在JavaEE应用中发布Web服务变得轻而易举。和其他Web服务引擎相比,XFire的配置非常简单,可以非常容易地和Spring集成,它使得Java开发人员终于可以获得和.Net开发人员一样的开发效率。
核心代码:
Service service = new ObjectServiceFactory().create(IWebservice.class);
XFireProxyFactory factory =
new XFireProxyFactory(XFireFactory.newInstance().getXFire());
String url= "http://localhost:8080/webservices/services/webservices";
IWebservice iw = (IWebservice) factory.create(service, url);
List list=iw.getTest();
出处:http://liyuandong.iteye.com/blog/567836
⑩ .NET中怎么调用JAVA的WebService服务接口。
右键项目,添加web引用。把地址添加进来。并写好你给它什么命名空间
再在.cs代码中using
你定义的命名空间引进来。就当是引入一个dll一样用了