使用websphere生成webservice接口,在spring配置文件中引用了生成proxy类,junit初始化spring报错分析

  |   0 评论   |   1,646 浏览

    使用ibm WID生成webservice 代理类,使用junit测试的时候,初始化spring出错的问题

    outerspsconf.xml 中配置了 webservice生成的代理类

    在测试类中执行getConfigLocations()方法的时候就会出错,

    解决方法:

    1.WID的安装目录下面路径:IBM\WebSphere\ID\602\runtimes\bi_v6\runtimes 拷贝文件ibm-jaxrpc-client.jar到

    安装目录下面的D:\Program Files\IBM\WebSphere\ID\602\eclipse\jre\lib\ext文件夹内。

    2.打开属性,如下图操作,双击选中框的位置

    3.双击后弹出下图,然后先取消勾选,然后重新勾选一下就ok了。

    出现上面的那个jar包就ok了,下面替换一下,引入的类库。在工程目录上右键》属性

    先删掉这个库,然后点击Add Libray.

    为什么不直接拷贝jar包到工程lib目录,主要是打包的时候,会把lib目录下的jar包都打进去。放在jre路径下,打包的时候不会打进去,就不会和应用服务器webspere冲突。

    (之前我把ibm-jaxrpc-client.jar文件放在WPS Server v6.0 JRE下面了,在wid直接部署工程到websphere上启动运行的时候出错了 )

    错误原因:初始化spring配置文件中webservice代理类的时候,会调用下图的方法

    需要ibm-jaxrpc-client.jar中的类才能执行,由于这个jar包在websphere运行环境下才有,所以junit测试的时候会出错,空指针异常。

    只需要按照上面的方法添加,就能引用到程序中,生成对应的webservice类。

    错误信息

    org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'finishServiceWs' defined in file [F:\workspace1\OSSWeb\test\outerspsconf.xml]: Instantiation of bean failed; nested exception is org.springframework.beans.FatalBeanException: Could not instantiate class [com.cthq.crm.common.webservice.service.FinishServiceWsProxy]; constructor threw exception; nested exception is java.lang.NullPointerException: null
    org.springframework.beans.FatalBeanException: Could not instantiate class [com.cthq.crm.common.webservice.service.FinishServiceWsProxy]; constructor threw exception; nested exception is java.lang.NullPointerException: null
    java.lang.NullPointerException
         at org.apache.commons.discovery.resource.ClassLoaders.getLibLoaders(ClassLoaders.java:175)

    评论

    发表评论

    validate