CXF创建客户端连接问题

acumenwu 2014-11-10 11:23:25
JaxWsDynamicClientFactory clientFactory = JaxWsDynamicClientFactory.newInstance();
String url = "http://localhost:8899/gyjk/services/MZService?wsdl";
log.debug("===client_url==="+url);
Client client = null;
client = clientFactory.createClient(url);
log.debug("===clientFactory.createClient==="+url);


用myeclipse启动tomcat运行是正常的,但部署在tomcat直接运行就报错
在client = clientFactory.createClient(url);报下面错误,在lib下的tools.jar也能找到com.sun.tools.internal.xjc.api.XJC
~求高手赐教,怎么解决???

2014-11-10 09:59:00,080 DEBUG [com.wisetop.inf.gzss.bizImpl.MZServiceImpl] - ===client_url===http://localhost:8899/gyjk/services/MZService?wsdl
2014-11-10 09:59:00,095 DEBUG [org.apache.cxf.endpoint.dynamic.DynamicClientFactory] - Creating client from URL http://localhost:8899/gyjk/services/MZService?wsdl
java.lang.IllegalStateException: Unable to create schema compiler
at org.apache.cxf.jaxb.JAXBUtils.createSchemaCompilerWithDefaultAllocator(JAXBUtils.java:694)
at org.apache.cxf.endpoint.dynamic.DynamicClientFactory.createClient(DynamicClientFactory.java:262)
at org.apache.cxf.endpoint.dynamic.DynamicClientFactory.createClient(DynamicClientFactory.java:198)
at org.apache.cxf.endpoint.dynamic.DynamicClientFactory.createClient(DynamicClientFactory.java:191)
at org.apache.cxf.endpoint.dynamic.DynamicClientFactory.createClient(DynamicClientFactory.java:146)
at com.wisetop.inf.gzss.bizImpl.MZServiceImpl.SendUnitInfo(MZServiceImpl.java:98)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at org.springframework.util.MethodInvoker.invoke(MethodInvoker.java:273)
at org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean$MethodInvokingJob.executeInternal(MethodInvokingJobDetailFactoryBean.java:264)
at org.springframework.scheduling.quartz.QuartzJobBean.execute(QuartzJobBean.java:86)
at org.quartz.core.JobRunShell.run(JobRunShell.java:202)
at org.quartz.simpl.SimpleThreadPool$WorkerThread.run(SimpleThreadPool.java:529)
Caused by: javax.xml.bind.JAXBException
- with linked exception:
[java.lang.ClassNotFoundException: com.sun.tools.internal.xjc.api.XJC]
at org.apache.cxf.jaxb.JAXBUtils.createSchemaCompiler(JAXBUtils.java:679)
at org.apache.cxf.jaxb.JAXBUtils.createSchemaCompilerWithDefaultAllocator(JAXBUtils.java:686)
... 14 more
Caused by: java.lang.ClassNotFoundException: com.sun.tools.internal.xjc.api.XJC
at java.net.URLClassLoader$1.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at java.lang.Class.forName0(Native Method)
at java.lang.Class.forName(Unknown Source)
at org.apache.cxf.jaxb.JAXBUtils.createSchemaCompiler(JAXBUtils.java:672)
... 15 more
...全文
4426 15 打赏 收藏 转发到动态 举报
写回复
用AI写文章
15 条回复
切换为时间正序
请发表友善的回复…
发表回复
q631263135 2018-11-21
  • 打赏
  • 举报
回复
引用 11 楼 wangluy27 的回复:
虽然是个老帖,但好像大家也没发现具体是问题导致,刚好我也碰到此问题,顺道说下解决方法,将cxf中src的jaxb-api-2.2.1,jaxb-impl-2.2.1.1,jaxb-xjc-2.2.1.1这3个jar添加进去,测试是可以解决问题,具体为什么这样,也没细查,希望查到具体原因的可以解惑。


如果你们搜索的都是类似"setclasspath"->lib\jre的方式而不得解决的话,不妨尝试这个方案。我私认为这个报错本身就是个bug吧。
拉着猪逛街 2017-05-04
  • 打赏
  • 举报
回复
引用 13 楼 ilhxasll 的回复:
很有可能是你用的jre而不是jdk,把你的eclipse的jdk版本改成jdk的就好了~~~~
如果你是安装版的tomcat,它在安装的时候会有一个提示,如果默认的话它会直接走jre,注意这点。
yufake 2017-02-24
  • 打赏
  • 举报
回复
我解决这个问题,是因为eclipse和实际运行的java不一致导致的 本来运行ok, 但后来装了32位的java 它在sysWOW64下面放了java.exe, 导致运行时优先使用了这个32位的java 解决方法是把sysWOW64下面的java删掉,就和以前一样正常了
拉着猪逛街 2017-02-24
  • 打赏
  • 举报
回复
很有可能是你用的jre而不是jdk,把你的eclipse的jdk版本改成jdk的就好了~~~~
wangluy27 2016-07-05
  • 打赏
  • 举报
回复
虽然是个老帖,但好像大家也没发现具体是问题导致,刚好我也碰到此问题,顺道说下解决方法,将cxf中src的jaxb-api-2.2.1,jaxb-impl-2.2.1.1,jaxb-xjc-2.2.1.1这3个jar添加进去,测试是可以解决问题,具体为什么这样,也没细查,希望查到具体原因的可以解惑。
danleeLi 2016-05-12
  • 打赏
  • 举报
回复
请问问题解决了吗?
GeekZFZ 2015-09-18
  • 打赏
  • 举报
回复
解决了吗,我也遇到这样的问题,部署到linux服务器后就报这样的错了,在本机eclipse环境下是正常的。求助!!!
miracle_yao 2015-05-08
  • 打赏
  • 举报
回复
请问解决了吗?写在main方法里面能过,放在Tomcat就不行。
砖猿xiuvee 2015-01-06
  • 打赏
  • 举报
回复
我也出现这个问题,头疼啊,写在main方法里面能过,一启动tomcat就过不去,就是这个错误!!!
acumenwu 2014-12-05
  • 打赏
  • 举报
回复
原因未明,程序没问题的,试过与另一对接方做对接是正常连接,不知是否与对接方是用php做的服务有关,现改成xfire来对接
qq_18121735 2014-12-04
  • 打赏
  • 举报
回复
解决了没有啊,我也碰到这个问题....
qq_18121735 2014-12-04
  • 打赏
  • 举报
回复
解决了没有啊,我也碰到这个问题....
qq_18121735 2014-12-04
  • 打赏
  • 举报
回复
解决了没有啊,我也碰到这个问题....
程诺 2014-11-23
  • 打赏
  • 举报
回复
问题解决了吗?我的项目也出现了这个问题了,求救
cao_yunfei 2014-11-10
  • 打赏
  • 举报
回复
com.sun.tools.internal.xjc.api.XJC 包不存在,看下是不是打包忘记了。

50,530

社区成员

发帖
与我相关
我的任务
社区描述
Java相关技术讨论
javaspring bootspring cloud 技术论坛(原bbs)
社区管理员
  • Java相关社区
  • 小虚竹
  • 谙忆
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧