启动硬盘上的tomcat服务时,在动态调用webservice接口时报空指针,但是在myeclipse中却没问题,
public static String callService(String wsUrl, String method, Object arg[]){
JaxWsDynamicClientFactory dcf = JaxWsDynamicClientFactory.newInstance();
Client client = dcf.createClient(wsUrl);
Object res[] = (Object[])null;
try{
res = client.invoke(method, arg);
}catch (Exception e){
e.printStackTrace();
}
return (String)res[0];
}
调用的代码就这么简单,但是却始终爆出如下额错误信息:
java.lang.NullPointerException
at org.apache.cxf.common.util.Compiler.useJava6Compiler(Compiler.java:189)
at org.apache.cxf.common.util.Compiler.compileFiles(Compiler.java:143)
at org.apache.cxf.common.util.Compiler.compileFiles(Compiler.java:138)
后来才知道是因为我的myeclipse指定了tomcat,并指定了jdk的位置,虽然环境变量也指定了jdk和jre的位置,但是不知道什么原因tomcat没有找到,初步怀疑是服务器虚拟机的问题或者是服务器上有多个版本jdk导致。
我是如下解决:
(1)在环境变量中有JAVA_HOME后再加入一个JRE_HOME指向中的JRE
JRE_HOME
C:\Program Files\Java\jdk1.7.0_45\jre
(2)在tomcat下的bin目录中找到catalina.bat加入
set JAVA_HOME=C:\Program Files\Java\jdk1.7.0_45
set JRE_HOME=C:\Program Files\Java\jdk1.7.0_45\jre
(3)在tomcat下的bin目录中找到setclasspath.bat加入
set JAVA_HOME=C:\Program Files\Java\jdk1.7.0_45
set JRE_HOME=C:\Program Files\Java\jdk1.7.0_45\jre
我的问题解决。
相关推荐
### Node.js 和 Java 调用 WebService 接口总结 #### 一、Java 实现方式 在 Java 中,调用 WebService 接口通常涉及使用 Apache CXF 或其他类似的库来生成客户端代码并进行调用。以下是具体的步骤: ##### 1. ...
Java WebService CXF客户端调用和服务端的实现是企业级应用程序中常见的通信方式,它基于标准的SOAP(Simple Object Access Protocol)协议,提供了一种在分布式环境中交换信息的方法。CXF是一个开源框架,它简化了...
CXF可以基于WSDL自动生成Java客户端代码,这使得调用服务变得简单。 2. **配置服务客户端**:通过CXF的客户端API,你可以设置服务地址、认证信息等参数。这通常在Spring配置文件或代码中完成。 3. **调用服务**:...
Java调用WebService接口是Web应用程序开发中的常见任务,主要用于实现不同系统间的远程通信和数据交换。在本资料中,我们重点关注Java如何与基于SOAP(Simple Object Access Protocol)的WebService进行交互。 1. *...
C#动态调用CXF WEBSERVICE框架共通类。
在Java开发中,Web服务(Web Service)是一种用于应用程序之间通信的技术,允许不同...`WebServiceInvoker.java`文件的核心就是按照上述步骤实现动态调用的过程,理解其工作原理对于提升Web服务开发能力非常有帮助。
2.用cxf开发webservice 3.这个服务端和客户端的小demo 在服务端 对外开放接口服务,然后在客户端 调用服务端的方法, 实现客户端(一个javaweb项目)对服务端(javaweb项目)方法的调用, 实际上就是发送和接收消息...
6. **CXF的WSDL第一方式**:CXF也支持WSDL第一方式,即先有WSDL描述服务,然后根据WSDL自动生成Java代码。这种方式适合于已有WSDL描述的服务,或者需要严格遵循WSDL规范的情况。 7. **CXF与Spring集成**:CXF与...
在动态调用中,我们需要手动处理XML消息的构造和解析,这意味着更多的代码和可能的错误,但同时也带来了更大的灵活性,适用于那些需要频繁更改服务地址或者不固定的服务接口。 总结来说,Web服务的静态调用适合于...
【标题】:“cxf做的webservice对外提供接口调用” 【描述】中提到的“webservice对外发布接口全部源码拿起来就能用”,这表明这是一个关于使用Apache CXF框架创建和发布的Web服务项目。Apache CXF是一个开源的Java...
6. **测试调用**:最后,你可以通过CXF客户端调用Web服务接口,此时ws-security的设置将会自动应用到请求中,保证了调用的安全性。 在提供的压缩包文件"WsClient"中,可能包含了实现以上步骤的示例代码,例如Java...
在实际开发中,通常推荐使用像Apache CXF、Spring-WS等现代的Java WebService客户端库,它们提供了更友好的API,能够自动处理WSDL解析、SOAP消息构造和错误处理等细节。 总结来说,Java调用WebService接口主要通过...
用camel-cxf调用webservice和发布一个webservice接口例子,首先启动QueryServiceMain主函数启动webservice接口,然后启动测试类TestWebservice。例子主要是实现java代码实现camel调用webservice接口
在Java开发中,Apache CXF是一个广泛使用的开源框架,它提供了创建和消费Web服务的能力。当我们需要在客户端调用Web服务时,CXF扮演着关键角色。本篇将详细讲解如何利用CXF客户端来调用Web服务以及所需的jar包。 ...
Apache CXF是一个开源的Java框架,它主要用于构建和开发服务导向架构(SOA)和Web服务。这个"apache-cxf-2.4.6.zip"压缩包包含了CXF框架的2.4.6版本,这是一个相对早期的版本,发布于2012年。在深入探讨CXF之前,...
本文将详细讲解如何使用Java调用.NET发布的Web Service(ASMX),并解决在此过程中可能出现的SOAPAction报错和“Server not identified”错误。 首先,我们需要了解ASMX。ASMX是.NET Framework早期版本中用于创建...
这个"CXF动态webservice客户端demo"是为了演示如何使用CXF库创建一个动态调用Web服务接口的客户端应用程序。 首先,我们需要了解Web服务的基本概念。Web服务基于SOAP(Simple Object Access Protocol)协议,通过...
在使用Idea根据wsdl自动生成java code的时候;抛出无法找到主类:org.apache.axis.wsdl.WSDL2Java(Throws Could not find main class: org.apache.axis.wsdl.WSDL2Java)。 添加本文的jar包压缩包解压出来的所有jar包...
Java调用WebService接口是开发中常见的一种跨平台通信方式,主要通过SOAP(Simple Object Access Protocol)消息进行数据交换。在本文中,我们将深入探讨两种不同的方法来实现这一目标。 首先,我们来看第一种方法...