关于java开发jre选择的忠告

首先分享的是一句话:安装jdk时一般会单独分离出一个jre文件夹,选择jre时最好选择jdk文件下的那的jre不要选择单独的那个(龙哥语)

我们可以看见两个是jre的大小是不一样的,jdk中的jre大一些,里面的jar包多些。外面的那个jre小些,一般集成了大多数需要用到的jar包,但是不是最全的,当遇到需要用到的jar包而外面的jre里又没有的时候,就会出现一些莫名其妙的问题,让人很头疼,所以为了安全起见最好是选择jdk文件夹中那个大一点的。


下面我就来还原我遇到的问题:

Exception in thread "main" java.lang.IllegalStateException: Unable to create JAXBContext for generated packages: Provider com.sun.xml.bind.v2.ContextFactory could not be instantiated: javax.xml.bind.JAXBException: "com.yinhai.common.webservice" 不包含 ObjectFactory.class 或 jaxb.index
    at org.apache.cxf.endpoint.dynamic.DynamicClientFactory.createClient(DynamicClientFactory.java:356)
    at org.apache.cxf.endpoint.dynamic.DynamicClientFactory.createClient(DynamicClientFactory.java:204)
    at org.apache.cxf.endpoint.dynamic.DynamicClientFactory.createClient(DynamicClientFactory.java:197)
    at org.apache.cxf.endpoint.dynamic.DynamicClientFactory.createClient(DynamicClientFactory.java:152)
    at com.yinhai.common.webservice.HelloClient1.main(HelloClient1.java:24)
Caused by: javax.xml.bind.JAXBException: Provider com.sun.xml.bind.v2.ContextFactory could not be instantiated: javax.xml.bind.JAXBException: "com.yinhai.common.webservice" 不包含 ObjectFactory.class 或 jaxb.index
 - with linked exception:
[javax.xml.bind.JAXBException: "com.yinhai.common.webservice" 不包含 ObjectFactory.class 或 jaxb.index]
    at javax.xml.bind.ContextFinder.newInstance(ContextFinder.java:146)
    at javax.xml.bind.ContextFinder.find(ContextFinder.java:334)
    at javax.xml.bind.JAXBContext.newInstance(JAXBContext.java:431)
    at org.apache.cxf.endpoint.dynamic.DynamicClientFactory.createClient(DynamicClientFactory.java:353)
    ... 4 more
Caused by: javax.xml.bind.JAXBException: "com.yinhai.common.webservice" 不包含 ObjectFactory.class 或 jaxb.index
    at com.sun.xml.bind.v2.ContextFactory.createContext(ContextFactory.java:275)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:601)
    at javax.xml.bind.ContextFinder.newInstance(ContextFinder.java:172)
    at javax.xml.bind.ContextFinder.newInstance(ContextFinder.java:132)
    ... 7 more

这是调用webservice服务端的时候报出的bug,我是直接看不出来的,那么常规操作,找度娘。百度一下,从各种各样的信息中筛选出一条有用的信息那就是和jar包有关。

首先分析以前还可以正常调用,webservice的jar包应该是没问题的,然后就想到是可能和jre的版本有关系,结果安装的jdk1.7和jdk1.8切换来还是没有解决问题。不放弃,继续百度筛选有用的信息,结果功夫不负有心人有看到一条有用的信息,提示上面调用webservice时要注意环境变量的配置。突然就像到经理(上面的龙哥)跟我说过的那句话,于是重新配置jre,测试成功!!!


总结:敲代码这行经验很重要!!!不过我们在不断总结经验的同时也要不断学习,经验+知识量我们才能向更高的层次迈进...

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值