您的位置:首页 > 其它

CXF调用webservice日记

2015-06-18 11:57 148 查看
新手一枚,最近需要做调用webservice接口的东西,因之前没有做过,所以借鉴了一下同事的。做好后,自己进行测试,刚开始使用的是jdk1.7,但是老是报空指针异常,异常信息如下:
java.lang.NullPointerException

at org.apache.cxf.common.util.Compiler.useJava6Compiler(Compiler.java:190)

at org.apache.cxf.common.util.Compiler.compileFiles(Compiler.java:144)

at org.apache.cxf.common.util.Compiler.compileFiles(Compiler.java:139)

at org.apache.cxf.endpoint.dynamic.DynamicClientFactory.compileJavaSrc(DynamicClientFactory.java:610)

at org.apache.cxf.endpoint.dynamic.DynamicClientFactory.createClient(DynamicClientFactory.java:369)

at org.apache.cxf.endpoint.dynamic.DynamicClientFactory.createClient(DynamicClientFactory.java:240)

at org.apache.cxf.endpoint.dynamic.DynamicClientFactory.createClient(DynamicClientFactory.java:233)

at org.apache.cxf.endpoint.dynamic.DynamicClientFactory.createClient(DynamicClientFactory.java:188)

at gdcc.hsps.web.actions.util.WebServiceInvoker.getClient(WebServiceInvoker.java:62)

at gdcc.hsps.web.actions.util.WebServiceInvoker.invoker(WebServiceInvoker.java:44)

at gdcc.hsps.web.actions.test.TestService.main(TestService.java:18)

但在jdk1.6下能跑。不知为何会为空,于是度娘之,有说cxf.jar与jdk冲突的,有说要在jre下创建文件夹endorsed放置jaxb-api-2.2.1包和jaxws-api包的,总之将关联的项目的jdk都改为了1.7后各种尝试,就是不能正确跑起来。无奈,去同事电脑上跑,竟然发现没问题(同事的电脑jdk1.7);同事说有可能是当前版本的cxf不支持jdk1.7,需要用最新版的,于是在网上下了各种版本的,但是结果还是一样,异常还是一样一样的,我特么疯了(说明:cxf3.1以后的版本已经不支持jdk1.6了)。行将崩溃之际,另外一个同事说,是jre/bin目录下没有tools.jar,把jdk/bin目录下的文件复制过去就可以。当时就怀疑为什么要把jar包放置bin目录下,bin目录下不是就应该放置.dll和.exe文件的吗(lib才是jar包的真爱好吗?),抱着试一试的心情,只能尝试一下,还是不能解决这个问题;(因为有前面的怀疑)我就把tools.jar放到了lib下,再运行,这一次,终于不再报异常了,泪奔啊!折腾了一天半的东西就以为这个破tools没出现在该出现的地方。

为避免以后再次遇到这个问题,遂发博记之。

如果你也恰巧遇到这个问题,请尝试一下;如果没解决你的问题,请勿喷!因为我说了我是新手。

如果还有其他解决办法。还请在评论处告诉我。谢谢
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: