java如何调用C#编写的webservice??急需!! java如何调用C#编写的webservice??急需!! 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 把webservice的wsdl拿来,然后使用axis的wsdl2java生成客户端代码,就像调用本地的API一样使用 好像需要引入import org.apache.axis.client.Call;import org.apache.axis.client.Service;这两个包,但是我在axis官方网站上http://ws.apache.org/axis/下载里面全是英文,能不能帮帮我告诉我从哪下载???谢谢啊 axis 或 cxf 到apache网站可以找到 http://navistar.uicp.net/sanyECCwebservices/services/ServiceCVS?wsdl这是webservice 服务端package shinco.wsclient;import javax.jws.WebMethod;import javax.jws.WebParam;import javax.jws.WebResult;import javax.jws.WebService;import javax.jws.soap.SOAPBinding;@WebService(name = "ServiceCVSPortType", targetNamespace = "http://webservices.sany.gx.com")@SOAPBinding(use = SOAPBinding.Use.LITERAL, parameterStyle = SOAPBinding.ParameterStyle.WRAPPED)public interface ServiceCVSPortType { @WebMethod(operationName = "example", action = "") @WebResult(name = "out", targetNamespace = "http://webservices.sany.gx.com") public String example( @WebParam(name = "in0", targetNamespace = "http://webservices.sany.gx.com") String in0); @WebMethod(operationName = "getData", action = "") @WebResult(name = "out", targetNamespace = "http://webservices.sany.gx.com") public String getData( @WebParam(name = "in0", targetNamespace = "http://webservices.sany.gx.com") String in0);}package shinco.wsclient;import java.net.MalformedURLException;import java.util.Collection;import java.util.HashMap;import javax.xml.namespace.QName;import org.codehaus.xfire.XFireRuntimeException;import org.codehaus.xfire.aegis.AegisBindingProvider;import org.codehaus.xfire.annotations.AnnotationServiceFactory;import org.codehaus.xfire.annotations.jsr181.Jsr181WebAnnotations;import org.codehaus.xfire.client.XFireProxyFactory;import org.codehaus.xfire.jaxb2.JaxbTypeRegistry;import org.codehaus.xfire.service.Endpoint;import org.codehaus.xfire.service.Service;import org.codehaus.xfire.soap.AbstractSoapBinding;import org.codehaus.xfire.transport.TransportManager;public class ServiceCVSClient { private static XFireProxyFactory proxyFactory = new XFireProxyFactory(); private HashMap endpoints = new HashMap(); private Service service0; public ServiceCVSClient() { create0(); Endpoint ServiceCVSHttpPortEP = service0 .addEndpoint(new QName("http://webservices.sany.gx.com", "ServiceCVSHttpPort"), new QName("http://webservices.sany.gx.com", "ServiceCVSHttpBinding"), "http://navistar.uicp.net/sanyECCwebservices/services/ServiceCVS"); endpoints.put(new QName("http://webservices.sany.gx.com", "ServiceCVSHttpPort"), ServiceCVSHttpPortEP); Endpoint ServiceCVSPortTypeLocalEndpointEP = service0 .addEndpoint(new QName("http://webservices.sany.gx.com", "ServiceCVSPortTypeLocalEndpoint"), new QName("http://webservices.sany.gx.com", "ServiceCVSPortTypeLocalBinding"), "xfire.local://ServiceCVS"); endpoints.put(new QName("http://webservices.sany.gx.com", "ServiceCVSPortTypeLocalEndpoint"), ServiceCVSPortTypeLocalEndpointEP); } public Object getEndpoint(Endpoint endpoint) { try { return proxyFactory.create((endpoint).getBinding(), (endpoint).getUrl()); } catch (MalformedURLException e) { throw new XFireRuntimeException("Invalid URL", e); } } public Object getEndpoint(QName name) { Endpoint endpoint = ((Endpoint) endpoints.get((name))); if ((endpoint) == null) { throw new IllegalStateException("No such endpoint!"); } return getEndpoint((endpoint)); } public Collection getEndpoints() { return endpoints.values(); } private void create0() { TransportManager tm = (org.codehaus.xfire.XFireFactory.newInstance().getXFire().getTransportManager()); HashMap props = new HashMap(); props.put("annotations.allow.interface", true); AnnotationServiceFactory asf = new AnnotationServiceFactory(new Jsr181WebAnnotations(), tm, new AegisBindingProvider(new JaxbTypeRegistry())); asf.setBindingCreationEnabled(false); service0 = asf.create((shinco.wsclient.ServiceCVSPortType.class), props); { AbstractSoapBinding soapBinding = asf.createSoap11Binding(service0, new QName("http://webservices.sany.gx.com", "ServiceCVSHttpBinding"), "http://schemas.xmlsoap.org/soap/http"); } { AbstractSoapBinding soapBinding = asf.createSoap11Binding(service0, new QName("http://webservices.sany.gx.com", "ServiceCVSPortTypeLocalBinding"), "urn:xfire:transport:local"); } } public ServiceCVSPortType getServiceCVSHttpPort() { return ((ServiceCVSPortType)(this).getEndpoint(new QName("http://webservices.sany.gx.com", "ServiceCVSHttpPort"))); } public ServiceCVSPortType getServiceCVSHttpPort(String url) { ServiceCVSPortType var = getServiceCVSHttpPort(); org.codehaus.xfire.client.Client.getInstance(var).setUrl(url); return var; } public ServiceCVSPortType getServiceCVSPortTypeLocalEndpoint() { return ((ServiceCVSPortType)(this).getEndpoint(new QName("http://webservices.sany.gx.com", "ServiceCVSPortTypeLocalEndpoint"))); } public ServiceCVSPortType getServiceCVSPortTypeLocalEndpoint(String url) { ServiceCVSPortType var = getServiceCVSPortTypeLocalEndpoint(); org.codehaus.xfire.client.Client.getInstance(var).setUrl(url); return var; }}package shinco.wsclient;public class WsClient { public static void main(String[] args) { ServiceCVSClient client = new ServiceCVSClient(); ServiceCVSPortType service = client.getServiceCVSHttpPort(); String data = new WsClient().example("hello"); System.out.println("data= " + service.getData(data)); System.out.println("test client completed"); System.exit(0); } } 注意:不是所有C#写的webservice,Java的客户端度能调用的。 5楼的wsdl可以访问到的,随便生成了个客户端,结果hello helloThe data error,please the success of the data sent另外楼上说的对,java的webservice,C#来调用麽有问题的。反过经常会出问题。 String url = "http://127.0.0.1/testws/createws.asmx"; service = new Service(); service.getEngine().setOption( org.apache.axis.AxisEngine.PROP_XML_ENCODING, "UTF-8"); Call call = (Call) service.createCall(); call.setTargetEndpointAddress(new java.net.URL(url)); call.setProperty(Call.SOAPACTION_USE_PROPERTY, new Boolean(true)); call.setProperty(Call.SOAPACTION_URI_PROPERTY, "http://www.test.com/CreateOrder"); call.setProperty(Call.OPERATION_STYLE_PROPERTY, "document"); call.setOperationName("CreateOrder"); call.addParameter(new javax.xml.namespace.QName("http://www.test.com/", "CreateOrder"), XMLType.SOAP_DOCUMENT, ParameterMode.IN); call.setReturnType(XMLType.SOAP_DOCUMENT); Document rt = (Document) call.invoke(new Object[] { doc });我是这样调用的。 webserice拒绝访问:FileNotFoundExceptpion 在ubuntu下运行swing错误 谁做过医疗系统的项目,能给个设计书看看吗? 怎么学习SOA 求救:!!!!:关于jstl的问题 数据存放问题? 权限为什么存不进去 关于SWT棘手的问题,向虾哥们请教.我只有2天时间了.望虾哥们踊跃光顾. 如何用java解析html Tomcat8.0.53无法自动打开浏览器? hibernate 查询关联问题 一个关于Spring的问题,怎么注入一定数量的Bean。
import org.apache.axis.client.Call;
import org.apache.axis.client.Service;
这两个包,但是我在axis官方网站上http://ws.apache.org/axis/下载里面全是英文,能不能帮帮我告诉我从哪下载???
谢谢啊
这是webservice 服务端package shinco.wsclient;import javax.jws.WebMethod;
import javax.jws.WebParam;
import javax.jws.WebResult;
import javax.jws.WebService;
import javax.jws.soap.SOAPBinding;@WebService(name = "ServiceCVSPortType", targetNamespace = "http://webservices.sany.gx.com")
@SOAPBinding(use = SOAPBinding.Use.LITERAL, parameterStyle = SOAPBinding.ParameterStyle.WRAPPED)
public interface ServiceCVSPortType { @WebMethod(operationName = "example", action = "")
@WebResult(name = "out", targetNamespace = "http://webservices.sany.gx.com")
public String example(
@WebParam(name = "in0", targetNamespace = "http://webservices.sany.gx.com")
String in0); @WebMethod(operationName = "getData", action = "")
@WebResult(name = "out", targetNamespace = "http://webservices.sany.gx.com")
public String getData(
@WebParam(name = "in0", targetNamespace = "http://webservices.sany.gx.com")
String in0);}
package shinco.wsclient;import java.net.MalformedURLException;
import java.util.Collection;
import java.util.HashMap;
import javax.xml.namespace.QName;
import org.codehaus.xfire.XFireRuntimeException;
import org.codehaus.xfire.aegis.AegisBindingProvider;
import org.codehaus.xfire.annotations.AnnotationServiceFactory;
import org.codehaus.xfire.annotations.jsr181.Jsr181WebAnnotations;
import org.codehaus.xfire.client.XFireProxyFactory;
import org.codehaus.xfire.jaxb2.JaxbTypeRegistry;
import org.codehaus.xfire.service.Endpoint;
import org.codehaus.xfire.service.Service;
import org.codehaus.xfire.soap.AbstractSoapBinding;
import org.codehaus.xfire.transport.TransportManager;public class ServiceCVSClient { private static XFireProxyFactory proxyFactory = new XFireProxyFactory();
private HashMap endpoints = new HashMap();
private Service service0; public ServiceCVSClient() {
create0();
Endpoint ServiceCVSHttpPortEP = service0 .addEndpoint(new QName("http://webservices.sany.gx.com", "ServiceCVSHttpPort"), new QName("http://webservices.sany.gx.com", "ServiceCVSHttpBinding"), "http://navistar.uicp.net/sanyECCwebservices/services/ServiceCVS");
endpoints.put(new QName("http://webservices.sany.gx.com", "ServiceCVSHttpPort"), ServiceCVSHttpPortEP);
Endpoint ServiceCVSPortTypeLocalEndpointEP = service0 .addEndpoint(new QName("http://webservices.sany.gx.com", "ServiceCVSPortTypeLocalEndpoint"), new QName("http://webservices.sany.gx.com", "ServiceCVSPortTypeLocalBinding"), "xfire.local://ServiceCVS");
endpoints.put(new QName("http://webservices.sany.gx.com", "ServiceCVSPortTypeLocalEndpoint"), ServiceCVSPortTypeLocalEndpointEP);
} public Object getEndpoint(Endpoint endpoint) {
try {
return proxyFactory.create((endpoint).getBinding(), (endpoint).getUrl());
} catch (MalformedURLException e) {
throw new XFireRuntimeException("Invalid URL", e);
}
} public Object getEndpoint(QName name) {
Endpoint endpoint = ((Endpoint) endpoints.get((name)));
if ((endpoint) == null) {
throw new IllegalStateException("No such endpoint!");
}
return getEndpoint((endpoint));
} public Collection getEndpoints() {
return endpoints.values();
} private void create0() {
TransportManager tm = (org.codehaus.xfire.XFireFactory.newInstance().getXFire().getTransportManager());
HashMap props = new HashMap();
props.put("annotations.allow.interface", true);
AnnotationServiceFactory asf = new AnnotationServiceFactory(new Jsr181WebAnnotations(), tm, new AegisBindingProvider(new JaxbTypeRegistry()));
asf.setBindingCreationEnabled(false);
service0 = asf.create((shinco.wsclient.ServiceCVSPortType.class), props);
{
AbstractSoapBinding soapBinding = asf.createSoap11Binding(service0, new QName("http://webservices.sany.gx.com", "ServiceCVSHttpBinding"), "http://schemas.xmlsoap.org/soap/http");
}
{
AbstractSoapBinding soapBinding = asf.createSoap11Binding(service0, new QName("http://webservices.sany.gx.com", "ServiceCVSPortTypeLocalBinding"), "urn:xfire:transport:local");
}
} public ServiceCVSPortType getServiceCVSHttpPort() {
return ((ServiceCVSPortType)(this).getEndpoint(new QName("http://webservices.sany.gx.com", "ServiceCVSHttpPort")));
} public ServiceCVSPortType getServiceCVSHttpPort(String url) {
ServiceCVSPortType var = getServiceCVSHttpPort();
org.codehaus.xfire.client.Client.getInstance(var).setUrl(url);
return var;
} public ServiceCVSPortType getServiceCVSPortTypeLocalEndpoint() {
return ((ServiceCVSPortType)(this).getEndpoint(new QName("http://webservices.sany.gx.com", "ServiceCVSPortTypeLocalEndpoint")));
} public ServiceCVSPortType getServiceCVSPortTypeLocalEndpoint(String url) {
ServiceCVSPortType var = getServiceCVSPortTypeLocalEndpoint();
org.codehaus.xfire.client.Client.getInstance(var).setUrl(url);
return var;
}}package shinco.wsclient;public class WsClient {
public static void main(String[] args) {
ServiceCVSClient client = new ServiceCVSClient();
ServiceCVSPortType service = client.getServiceCVSHttpPort(); String data = new WsClient().example("hello");
System.out.println("data= " + service.getData(data));
System.out.println("test client completed");
System.exit(0);
}
}
不是所有C#写的webservice,Java的客户端度能调用的。
The data error,please the success of the data sent另外楼上说的对,java的webservice,C#来调用麽有问题的。反过经常会出问题。
service = new Service();
service.getEngine().setOption(
org.apache.axis.AxisEngine.PROP_XML_ENCODING, "UTF-8");
Call call = (Call) service.createCall();
call.setTargetEndpointAddress(new java.net.URL(url));
call.setProperty(Call.SOAPACTION_USE_PROPERTY, new Boolean(true));
call.setProperty(Call.SOAPACTION_URI_PROPERTY,
"http://www.test.com/CreateOrder");
call.setProperty(Call.OPERATION_STYLE_PROPERTY, "document");
call.setOperationName("CreateOrder");
call.addParameter(new javax.xml.namespace.QName("http://www.test.com/",
"CreateOrder"), XMLType.SOAP_DOCUMENT, ParameterMode.IN);
call.setReturnType(XMLType.SOAP_DOCUMENT);
Document rt = (Document) call.invoke(new Object[] { doc });我是这样调用的。