最近做个项目,要用java调用webservice接口,写个测试类就报错了,第一次弄这个,求大神指点,以下是代码及错误信息:
try {
String endpoint = "http://www.xdz.gov.cn:8080/system/services/UserService?wsdl";
//直接引用远程的wsdl文件
Service service = new Service();
Call call = (Call)service.createCall();
call.setTargetEndpointAddress(new URL(endpoint));
call.setOperationName("userLogin");//WSDL里面描述的接口名称
call.addParameter("servicesuserinfo", org.apache.axis.encoding.XMLType.XSD_STRING,
javax.xml.rpc.ParameterMode.IN);//接口的参数
call.addParameter("useraccount", org.apache.axis.encoding.XMLType.XSD_STRING,
javax.xml.rpc.ParameterMode.IN);//接口的参数
call.addParameter("password", org.apache.axis.encoding.XMLType.XSD_STRING,
javax.xml.rpc.ParameterMode.IN);//接口的参数
call.setReturnType(org.apache.axis.encoding.XMLType.XSD_STRING);//设置返回类型
String result = (String)call.invoke(new Object[]{PwdCrypt.encrypt(encode),"admin",PwdCrypt.encrypt("!2@:?+)JUXDZ^%&*")});
//给方法传递参数,并且调用方法
System.out.println("result is "+result);
}
catch (Exception e) {
e.printStackTrace();
}
异常信息如下:
log4j:ERROR Could not find value for key log4j.appender.R
log4j:ERROR Could not instantiate appender named "R".
[QC] INFO [main] org.apache.axis.client.Call.invoke(1853) | Mapping Exception to AxisFault
AxisFault
faultCode: {http://schemas.xmlsoap.org/soap/envelope/}Server.userException
faultString: java.lang.reflect.InvocationTargetException
faultActor: null
faultDetail:
hostname: localhost.localdomain
java.lang.reflect.InvocationTargetException
at org.apache.axis.message.SOAPFaultBuilder.endElement(SOAPFaultBuilder.java:135)
at org.apache.axis.encoding.DeserializationContextImpl.endElement(DeserializationContextImpl.java:942)
at com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.endElement(AbstractSAXParser.java:609)
at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.scanEndElement(XMLDocumentFragmentScannerImpl.java:1789)
at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl$FragmentContentDriver.next(XMLDocumentFragmentScannerImpl.java:2965)
at com.sun.org.apache.xerces.internal.impl.XMLDocumentScannerImpl.next(XMLDocumentScannerImpl.java:606)
at com.sun.org.apache.xerces.internal.impl.XMLNSDocumentScannerImpl.next(XMLNSDocumentScannerImpl.java:117)
at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.scanDocument(XMLDocumentFragmentScannerImpl.java:510)
at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:848)
at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:777)
at com.sun.org.apache.xerces.internal.parsers.XMLParser.parse(XMLParser.java:141)
at com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.parse(AbstractSAXParser.java:1213)
at com.sun.org.apache.xerces.internal.jaxp.SAXParserImpl$JAXPSAXParser.parse(SAXParserImpl.java:649)
at com.sun.org.apache.xerces.internal.jaxp.SAXParserImpl.parse(SAXParserImpl.java:333)
at org.apache.axis.encoding.DeserializationContextImpl.parse(DeserializationContextImpl.java:232)
at org.apache.axis.SOAPPart.getAsSOAPEnvelope(SOAPPart.java:546)
at org.apache.axis.Message.getSOAPEnvelope(Message.java:377)
at org.apache.axis.client.Call.invokeEngine(Call.java:2132)
at org.apache.axis.client.Call.invoke(Call.java:2102)
at org.apache.axis.client.Call.invoke(Call.java:1851)
at org.apache.axis.client.Call.invoke(Call.java:1777)
at org.apache.axis.client.Call.invoke(Call.java:1315)
at com.hz.sunday.gaoxinfccrm.utils.HttpRequestUtil.main(HttpRequestUtil.java:116)
相关推荐
通过以上知识点的学习和实践,你可以掌握如何使用Java调用SOAP接口,以及如何根据具体需求进行定制。在处理天气信息这样的案例中,理解SOAP协议和相关API的使用,将使你能够轻松地与各种Web服务进行交互。
本篇文章将深入讲解如何使用Dubbo进行Java接口的调用。 首先,理解Dubbo的核心概念: 1. **服务(Service)**:服务是业务逻辑的封装,它定义了服务的接口和协议,如`HelloService`,包含了一组`sayHello`这样的...
以下是如何使用Axis进行Java调用WebService接口的步骤: 1. **创建WebService客户端**: 首先,你需要获取服务的WSDL文档。这是一个XML文件,描述了服务的接口、操作和消息格式。你可以通过URL获取WSDL,或者如果...
本文将深入探讨如何使用Java调用WebService接口,以实例分析有参方法Add的使用技巧。 首先,我们需要了解WebService的基础知识。WebService是一种基于开放标准(如SOAP、WSDL和UDDI)的Web应用程序,它能够通过HTTP...
本教程将深入探讨如何使用Axis库来实现在Java中调用WebService接口。Axis是一个开源的Java SOAP栈,它提供了从Java代码中创建和消费Web服务的能力。 **一、什么是WebService?** WebService是一种基于XML的协议,它...
下面,我们将深入讲解如何使用Java调用Web Service接口: 1. **创建Web Service客户端**:首先,你需要获取服务的WSDL URL。使用`wsimport`工具(通常包含在Java SDK中)可以自动生成Java客户端代理类。例如: ```...
综上所述,通过Java调用HTTPS Web Service接口涉及的关键点包括证书的信任管理、自定义`SSLSocketFactory`以及正确处理网络请求。了解并掌握这些知识点,能帮助开发者在安全的环境中进行Web Service交互。
Java调用WebService接口是Web应用程序开发中的常见...总的来说,Java调用WebService接口涉及多个层次的技术,从XML解析、SOAP消息构造到网络通信和异常处理。理解这些知识点有助于开发者更高效地集成和使用WebService。
本篇文章将详细讲解如何使用Java实现GET和POST方法的远程接口调用,以及如何处理带有参数的情况。 首先,我们要了解HTTP协议中的GET和POST请求。GET请求通常用于获取资源,其参数包含在URL中;而POST请求常用于提交...
标题中的“通过本地Java代码访问WSDL接口”指的是在Java编程环境中,利用WSDL(Web Service Description Language)文件来创建客户端代理类,从而调用远程Web服务。WSDL是一种XML格式,它定义了Web服务的接口,包括...
Java调用Java Web Service是Java开发中的一个常见任务,它涉及到Web服务的消费与交互,主要基于SOAP(Simple Object Access Protocol)协议。本篇将详细阐述这个过程,并结合标签“源码”和“工具”,探讨如何通过源...
本实例主要关注的是如何调用Web Service接口,我们将探讨相关的关键知识点。 首先,理解Web Service的基本概念非常重要。它通过SOAP(Simple Object Access Protocol)协议传输数据,使用WSDL(Web Services ...
在Java开发中,调用HTTPS发布的Web Service接口是一项常见的任务,尤其在企业级应用中,HTTPS提供了安全的数据传输。本文将详细介绍如何使用Apache Axis库来实现这一功能,并提供相关步骤和注意事项。 首先,理解...
在 Java 中,调用 WebService 接口通常涉及使用 Apache CXF 或其他类似的库来生成客户端代码并进行调用。以下是具体的步骤: ##### 1. 官方下载网址与安装 首先,需要从 Apache CXF 的官方网站下载相应的工具包。...
总的来说,JAVA连接SAP的官方接口文档详细介绍了如何使用sapjco3库进行系统集成。开发者可以通过学习和实践,掌握从建立连接、调用SAP功能到处理返回结果的完整流程,从而在自己的JAVA应用中无缝集成SAP系统的业务...
总之,Java调用.NET/C#的Web服务是一个涉及网络通信、SOAP协议、类型转换等多个技术层面的过程,需要对Java和.NET平台都有一定的理解。正确配置和使用相关的工具库,可以有效地实现跨平台的通信。
本文将详细解析如何通过Apache Axis库在Java应用中调用WebService,具体聚焦于“JAVA调用webservice(axis方式)”这一主题。 ### Apache Axis简介 Apache Axis是一个开源的Java Web服务框架,支持SOAP协议,用于...
总之,Java调用WebService接口涉及多个库和jar包,通过理解相关概念和技术,可以有效地实现跨系统的数据交换。在实际开发中,根据项目需求选择合适的工具和库,合理优化,确保服务调用的稳定性和效率。
WSDL(Web Services Description Language)是定义Web Service接口的标准,它描述了服务的位置、操作、消息格式等。 2. **JAX-WS**: Java API for XML Web Services(JAX-WS)是Java平台上的标准API,用于创建和...
Java调用WebService接口的方法主要涉及两个关键点:一是理解WebService的工作原理,二是使用相应的Java库进行调用。本文将详细讲解这两个方面。 首先,WebService是一种基于标准的、平台和语言无关的通信方式,它...