您的位置:首页 > 编程语言 > Java开发

【cxf客户端】打包jar问题

2017-01-06 14:32 225 查看

1.问题:【警告】:源值1.5已过期,将在未来发行版中删除之类的问题

我最开始使用时候情况:

cxf的包版本-2.5.1

java版本为1.8

使用的IDE为NetBeans-8.1

遇到的问题是:在编译器中能够执行所写的与服务器交互的语句

String username = "felix";
String passwd = "felix";
JaxWsDynamicClientFactory dynamicClient = JaxWsDynamicClientFactory.newInstance();
String wsdl = "http://............../oj/webservice/OJWS?wsdl";
try {
client = dynamicClient.createClient(wsdl);
Object[] obj =client.invoke("WS_Login",username,passwd);
String message = (String)obj[0];
System.out.println(message);
}
catch (Exception e) {
e.printStackTrace();
}


然而通过NetBeans打包出来的jar包会不能执行上面语句,执行到createClient一句会出错

我尝试使用eclipse来编译这句话,但是在IDE中直接报错不能执行

这时候我使用情况是:

cxf的包版本-2.5.1

java版本为1.8

使用的IDE为eclipse

有一个学长让我用Myeclipse来试试,然而我并没有试

我的老师说有没有可能是cxf这一系列包有的版本太高了

所以!我使用了cxf-2.3.0 等等一系列的包,NO!NO!NO!都不行,网上对于这种错误解决的不多,我一直在想要不要把我自己的java版本换低一点,但最后还是放弃了这个想法。

我想要不我换一个高版本的cxf之后我下了cxf-3.1.9

当时使用情况为:

cxf的包版本-3.1.9

java版本为1.8

使用的IDE为NetBeans

这时候还会报错而且错误为:GBK编码的问题,好像还是服务器端的问题,让后我就崩了!

最后我查了一下与java1.7适应的版本是cxf-2.7.7,网上有很多说需要最小的cxf包有几个,我按照那个来,不行还是报错,我就把所有包都加上了,像我这种初学者还是所有包都加上好

使用情况为:

cxf的包版本-2.7.7

java版本为1.8

使用的IDE为NetBeans

这时候就没有出现错误的问题,在IDE中可以可以正常运行,没有出现警告源值的问题。

2.问题:编译错误

在打包成为jar包之后,还是无法运行。

这时候我换了一下IDE

使用情况为:

cxf的包版本-2.7.7

java版本为1.8

使用的IDE为eclipse

这时候eclipse报错无法运行

at org.apache.cxf.common.util.Compiler.useJava6Compiler(.....)


这样的类似的错误这个在网上查到了解决方案:转载:cxf客户端动态调用空指针异常

按照这个方法把Tools.jar复制到java/jre/lib下面就成功了

但是,假如我把我的这个软件给别人,我不能叫每个人都改啊!

所以,我写了一个批处理文件 exeJudger.bat 内容如下:

set classpath=.;%classpath
".\jdk1.8.0_101\jre\bin\java" -cp client.jar client.frame.LoginFrame
pause


上面的内容可以根据自己的工程情况写一下。

最终情况:

cxf的包版本-2.7.7

java版本为1.8

使用的IDE为NetBeans

再把java文件夹里面的 jdk1.8.0_101 文件夹,复制到根目录下,如图:



最终,解决了,双击exeJudger.bat文件,即可运行!!

我最终给自己总结了一下,编程会遇到各种各样的问题,可能不尽相同,但是只要有持之以恒的心,终究会解决!并且学会分享也很重要!
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  java cxf ide jar