问题描述
JaxWsProxyFactoryBean factory = new JaxWsProxyFactoryBean(); ....... JaxWsProxyFactoryBean.create() 调用方法等。。。 下面是JaxWsProxyFactoryBean.create()类里面的方法。 /** * Creates a JAX-WS proxy that can be used to make remote invocations. * * @return the proxy. You must cast the returned object to the approriate class * before making remote calls */ @Override public synchronized Object create() { ClassLoaderHolder orig = null; try { if (getBus() != null) { ClassLoader loader = getBus().getExtension(ClassLoader.class); if (loader != null) { orig = ClassLoaderUtils.setThreadContextClassloader(loader); } } Object obj = super.create(); Service service = getServiceFactory().getService(); if (needWrapperClassInterceptor(service.getServiceInfos().get(0))) { List<Interceptor<? extends Message>> in = super.getInInterceptors(); List<Interceptor<? extends Message>> out = super.getOutInterceptors(); in.add(new WrapperClassInInterceptor()); in.add(new HolderInInterceptor()); out.add(new WrapperClassOutInterceptor()); out.add(new HolderOutInterceptor()); } return obj; } finally { if (orig != null) { orig.reset(); } } } Object obj = super.create(); 这句话 用main方法测试可以获取到obj 程序流程正常走完,方法也调用正常 为啥部署到tomcat或者weblogic就获取不到obj 进入java.util.concurrent.FutureTask类 直接卡死了 这个啥情况呢 有人知道吗 麻烦帮助解决下 谢谢。
解决方案
容器的classloader未加载到那个类吧。。从这个思路再去想想?