RAD 9 JAXWS客户端抛出UnsupportedOperationException

问题描述:

我有一个调用JAXWS服务的Junit测试。在使用WAS 7的RAD 8中,此工作正常。我们正在使用WAS 8.5转换为RAD 9。我收到例外。确切的例外情况随着我尝试的每件新事物而变化。旧服务只需要junit和JAXWS thinclient变量。当我这样做,我得到一个异常说以下内容:RAD 9 JAXWS客户端抛出UnsupportedOperationException

java.lang.NoClassDefFoundError:com.ibm.ejs.ras.hpel.HpelHelper

我终于找到了插件目录中的HPEL罐子,但那么这只是导致下面的例外。我已经添加了commons logging,但没有任何效果。它发生有或没有。我在邮件的URL末尾阅读了帮助文档,但是AFAIK,我没有在slf4j上使用jcl。我假设一些IBM支持层正在使用它。但是这是JAXWS客户端在junit测试。我不知道如何运用他们的建议。

而且我也加入其中,我看到网上推荐了两个系统属性和他们没有makie一个区别: org.apache.commons.logging.Log = org.apache.commons.logging.impl.Log4JLogger 组织。 apache.commons.logging.LogFactory = org.apache.commons.logging.impl.LogFactoryImpl

目前的例外是:

Caused by: java.lang.UnsupportedOperationException: Operation [getContextClassLoader] is not supported in jcl-over-slf4j. See also http://www.slf4j.org/codes.html#unsupported_operation_in_jcl_over_slf4j 
at org.apache.commons.logging.LogFactory.getContextClassLoader(LogFactory.java:366) 
at org.apache.commons.logging.impl.LogFactoryImpl.access$000(LogFactoryImpl.java:113) 
at org.apache.commons.logging.impl.LogFactoryImpl$1.run(LogFactoryImpl.java:457) 
at java.security.AccessController.doPrivileged(AccessController.java:229) 
at org.apache.commons.logging.impl.LogFactoryImpl.loadClass(LogFactoryImpl.java:454) 
at org.apache.commons.logging.impl.LogFactoryImpl.getLogConstructor(LogFactoryImpl.java:406) 
... 54 more 

我的代码非常简单:

MyDataService svc = new MyDataService(); 
MyDataDelegate port = svc.getMyDataPort(); 
BindingProvider bp = (BindingProvider)port; 
Map<String, Object> context = bp.getRequestContext(); 
context.put(BindingProvider.ENDPOINT_ADDRESS_PROPERTY, url); 
port.myWebServiceEndpoint(listOfKeys); 

下面出来,在控制台,并没有从我的计划,这是我从来没有在RAD 8看见起源/为7:

Oct 3, 2014 10:00:29 AM null null 
INFO: ssl.disable.url.hostname.verification.CWPKI0027I 
Oct 3, 2014 10:00:32 AM null null 
SEVERE: security.JSAS1480I 
Oct 3, 2014 10:00:32 AM null null 
INFO: Client code attempting to load security configuration 
Oct 3, 2014 10:00:32 AM null null 
AUDIT: chain.started 

我有什么比解决方案的更多的解决方法。我不觉得我得到的是“正确的”。我必须将jcl-over-slf4j.jar和slf4j-api.jar(均为1.7.5)添加到引导类路径中。这似乎并不像它应该在这里找到正确的解决方案。但它的工作。

我确实面对源自LogFactory的“java.lang.UnsupportedOperationException”。尽管我不需要将任何jar文件添加到CLASSPATH中。我解决它通过添加下列系统属性:

-Dorg.apache.commons.logging.LogFactory = org.apache.commons.logging.impl.SLF4JLogFactory

+0

将代码标记! – gsamaras 2014-12-26 22:12:02