我正在使用JBoss EAP 6.3.2来部署SOAP Web服务。创建内联新对象时,Web服务已成功部署,但我无法将Web服务作为托管bean中的资源注入。
我有以下网络服务类:
服务端点接口
@WebService
public interface MyWebServiceSEI {
@WebMethod
public string createToken();
}
服务实施Bean
@WebService(endpointInterface="com.test.MyWebService")
public class MyWebServiceSIB implements MyWebServiceSEI {
@WebMethod
public string createToken() {
..
..
}
}
生成的客户端存根
@WebServiceClient(name="MyWebServiceSIBService", targetNameSpace="http://test.com/", wsdlLocation="http://localhost:8080/MyWebServiceSIB?wsdl")
public class MyWebServiceSIBService {
.
.
}
我尝试通过CDI托管的@ApplicationScoped
bean中的生产者注入SOAP Web服务客户端,如下所示:
制作人类
public class WebServiceProducer {
@WebServiceRef
@Produces
@MyQualifier
private MyWebServiceSIBService myWebServiceSIBService;
}
Managed Bean中的INJECTION:这是失败的
@ApplicationScoped
class AppServiceImplBean {
@Inject @MyQualifier
MyWebServiceSIBService myWebServiceSIBService;
public String retrieveToken() {
myWebServiceSIBService.getMyWebServiceSIBPort(); // Null Pointer Exception
}
}
在Managed Bean中创建new()服务:这是有效的
@ApplicationScoped
class AppServiceImplBean {
public String retrieveToken() {
MyWebServiceSIBService myWebServiceSIBService = new MyWebServiceSIBService();
myWebServiceSIBService.getMyWebServiceSIBPort(); //This works perfectly!
}
}
我需要知道是否还要做其他事情才能使注射成为可能。我正在跟踪错误跟踪。
: java.lang.IllegalStateException: JBAS011048: Failed to construct component instance
at org.jboss.as.ee.component.BasicComponent.constructComponentInstance(BasicComponent.java:164) [jboss-as-ee-7.4.2.Final-redhat-2.jar:7.4.2.Final-redhat-2]
at org.jboss.as.ee.component.BasicComponent.constructComponentInstance(BasicComponent.java:135) [jboss-as-ee-7.4.2.Final-redhat-2.jar:7.4.2.Final-redhat-2]
at org.jboss.as.ee.component.BasicComponent.createInstance(BasicComponent.java:90) [jboss-as-ee-7.4.2.Final-redhat-2.jar:7.4.2.Final-redhat-2]
at org.jboss.as.web.deployment.component.WebComponentInstantiator$1.<init>(WebComponentInstantiator.java:57) [jboss-as-web-7.4.2.Final-redhat-2.jar:7.4.2.Final-redhat-2]
at org.jboss.as.web.deployment.component.WebComponentInstantiator.getReference(WebComponentInstantiator.java:55) [jboss-as-web-7.4.2.Final-redhat-2.jar:7.4.2.Final-redhat-2]
at org.jboss.as.web.deployment.WebInjectionContainer.instantiate(WebInjectionContainer.java:101) [jboss-as-web-7.4.2.Final-redhat-2.jar:7.4.2.Final-redhat-2]
at org.jboss.as.web.deployment.WebInjectionContainer.newInstance(WebInjectionContainer.java:80) [jboss-as-web-7.4.2.Final-redhat-2.jar:7.4.2.Final-redhat-2]
at org.jboss.as.web.deployment.WebInjectionContainer.newInstance(WebInjectionContainer.java:74) [jboss-as-web-7.4.2.Final-redhat-2.jar:7.4.2.Final-redhat-2]
at org.apache.catalina.core.ApplicationFilterConfig.getFilter(ApplicationFilterConfig.java:410) [jbossweb-7.4.9.Final-redhat-1.jar:7.4.9.Final-redhat-1]
at org.apache.catalina.core.StandardContext.filterStart(StandardContext.java:3225) [jbossweb-7.4.9.Final-redhat-1.jar:7.4.9.Final-redhat-1]
at org.apache.catalina.core.StandardContext.start(StandardContext.java:3791) [jbossweb-7.4.9.Final-redhat-1.jar:7.4.9.Final-redhat-1]
at org.jboss.as.web.deployment.WebDeploymentService.doStart(WebDeploymentService.java:161) [jboss-as-web-7.4.2.Final-redhat-2.jar:7.4.2.Final-redhat-2]
at org.jboss.as.web.deployment.WebDeploymentService.access$000(WebDeploymentService.java:59) [jboss-as-web-7.4.2.Final-redhat-2.jar:7.4.2.Final-redhat-2]
at org.jboss.as.web.deployment.WebDeploymentService$1.run(WebDeploymentService.java:94) [jboss-as-web-7.4.2.Final-redhat-2.jar:7.4.2.Final-redhat-2]
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:471) [rt.jar:1.7.0_45]
at java.util.concurrent.FutureTask.run(FutureTask.java:262) [rt.jar:1.7.0_45]
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145) [rt.jar:1.7.0_45]
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615) [rt.jar:1.7.0_45]
at java.lang.Thread.run(Thread.java:744) [rt.jar:1.7.0_45]
at org.jboss.threads.JBossThread.run(JBossThread.java:122)
Caused by: java.lang.RuntimeException: javax.xml.ws.WebServiceException: org.apache.cxf.service.factory.ServiceConstructionException: Failed to create service.
at org.jboss.weld.util.reflection.SecureReflectionAccess.runAsInstantiation(SecureReflectionAccess.java:186) [weld-core-1.1.25.Final-redhat-2.jar:1.1.25.Final-redhat-2]
at org.jboss.weld.util.reflection.SecureReflections.newInstance(SecureReflections.java:341) [weld-core-1.1.25.Final-redhat-2.jar:1.1.25.Final-redhat-2]
at org.jboss.weld.bean.proxy.ProxyFactory.create(ProxyFactory.java:237) [weld-core-1.1.25.Final-redhat-2.jar:1.1.25.Final-redhat-2]
at org.jboss.weld.bean.builtin.ee.EEResourceProducerField.create(EEResourceProducerField.java:146) [weld-core-1.1.25.Final-redhat-2.jar:1.1.25.Final-redhat-2]
at org.jboss.weld.context.unbound.DependentContextImpl.get(DependentContextImpl.java:68) [weld-core-1.1.25.Final-redhat-2.jar:1.1.25.Final-redhat-2]
at org.jboss.weld.manager.BeanManagerImpl.getReference(BeanManagerImpl.java:626) [weld-core-1.1.25.Final-redhat-2.jar:1.1.25.Final-redhat-2]
at org.jboss.weld.manager.BeanManagerImpl.getReference(BeanManagerImpl.java:692) [weld-core-1.1.25.Final-redhat-2.jar:1.1.25.Final-redhat-2]
at org.jboss.weld.injection.FieldInjectionPoint.inject(FieldInjectionPoint.java:136) [weld-core-1.1.25.Final-redhat-2.jar:1.1.25.Final-redhat-2]
at org.jboss.weld.util.Beans.injectBoundFields(Beans.java:796) [weld-core-1.1.25.Final-redhat-2.jar:1.1.25.Final-redhat-2]
at org.jboss.weld.util.Beans.injectFieldsAndInitializers(Beans.java:805) [weld-core-1.1.25.Final-redhat-2.jar:1.1.25.Final-redhat-2]
at org.jboss.weld.bean.ManagedBean$ManagedBeanInjectionTarget$1$1.proceed(ManagedBean.java:165) [weld-core-1.1.25.Final-redhat-2.jar:1.1.25.Final-redhat-2]
at org.jboss.weld.injection.InjectionContextImpl.run(InjectionContextImpl.java:48) [weld-core-1.1.25.Final-redhat-2.jar:1.1.25.Final-redhat-2]
at org.jboss.weld.bean.ManagedBean$ManagedBeanInjectionTarget$1.work(ManagedBean.java:161) [weld-core-1.1.25.Final-redhat-2.jar:1.1.25.Final-redhat-2]
at org.jboss.weld.bean.ManagedBean$FixInjectionPoint.run(ManagedBean.java:135) [weld-core-1.1.25.Final-redhat-2.jar:1.1.25.Final-redhat-2]
at org.jboss.weld.bean.ManagedBean$ManagedBeanInjectionTarget.inject(ManagedBean.java:157) [weld-core-1.1.25.Final-redhat-2.jar:1.1.25.Final-redhat-2]
at org.jboss.weld.bean.ManagedBean.create(ManagedBean.java:297) [weld-core-1.1.25.Final-redhat-2.jar:1.1.25.Final-redhat-2]
at org.jboss.weld.context.unbound.DependentContextImpl.get(DependentContextImpl.java:68) [weld-core-1.1.25.Final-redhat-2.jar:1.1.25.Final-redhat-2]
at org.jboss.weld.manager.BeanManagerImpl.getReference(BeanManagerImpl.java:626) [weld-core-1.1.25.Final-redhat-2.jar:1.1.25.Final-redhat-2]
at org.jboss.weld.manager.BeanManagerImpl.getReference(BeanManagerImpl.java:692) [weld-core-1.1.25.Final-redhat-2.jar:1.1.25.Final-redhat-2]
at org.jboss.as.weld.injection.InjectableField.inject(InjectableField.java:56) [jboss-as-weld-7.4.2.Final-redhat-2.jar:7.4.2.Final-redhat-2]
at org.jboss.as.weld.injection.WeldEEInjection.inject(WeldEEInjection.java:81) [jboss-as-weld-7.4.2.Final-redhat-2.jar:7.4.2.Final-redhat-2]
at org.jboss.as.weld.injection.WeldInjectionInterceptor.processInvocation(WeldInjectionInterceptor.java:54) [jboss-as-weld-7.4.2.Final-redhat-2.jar:7.4.2.Final-redhat-2]
at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:288) [jboss-invocation-1.1.2.Final-redhat-1.jar:1.1.2.Final-redhat-1]
at org.jboss.as.ee.component.ComponentInstantiatorInterceptor.processInvocation(ComponentInstantiatorInterceptor.java:76) [jboss-as-ee-7.4.2.Final-redhat-2.jar:7.4.2.Final-redhat-2]
at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:288) [jboss-invocation-1.1.2.Final-redhat-1.jar:1.1.2.Final-redhat-1]
at org.jboss.invocation.WeavedInterceptor.processInvocation(WeavedInterceptor.java:53) [jboss-invocation-1.1.2.Final-redhat-1.jar:1.1.2.Final-redhat-1]
at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:288) [jboss-invocation-1.1.2.Final-redhat-1.jar:1.1.2.Final-redhat-1]
at org.jboss.invocation.ContextClassLoaderInterceptor.processInvocation(ContextClassLoaderInterceptor.java:70) [jboss-invocation-1.1.2.Final-redhat-1.jar:1.1.2.Final-redhat-1]
at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:288) [jboss-invocation-1.1.2.Final-redhat-1.jar:1.1.2.Final-redhat-1]
at org.jboss.invocation.ChainedInterceptor.processInvocation(ChainedInterceptor.java:61) [jboss-invocation-1.1.2.Final-redhat-1.jar:1.1.2.Final-redhat-1]
at org.jboss.as.ee.component.BasicComponent.constructComponentInstance(BasicComponent.java:162) [jboss-as-ee-7.4.2.Final-redhat-2.jar:7.4.2.Final-redhat-2]
... 19 more
Caused by: javax.xml.ws.WebServiceException: org.apache.cxf.service.factory.ServiceConstructionException: Failed to create service.
at org.apache.cxf.jaxws.ServiceImpl.<init>(ServiceImpl.java:151)
at org.jboss.wsf.stack.cxf.client.ProviderImpl$JBossWSServiceImpl.<init>(ProviderImpl.java:552)
at org.jboss.wsf.stack.cxf.client.ProviderImpl.createServiceDelegate(ProviderImpl.java:247)
at javax.xml.ws.Service.<init>(Service.java:57) [jboss-jaxws-api_2.2_spec-2.0.2.Final-redhat-1.jar:2.0.2.Final-redhat-1]
at com.jackson.myapp.ws.v1.client.MyWebServiceSIBService.<init>(MyWebServiceSIBService.java:45) [myapp-ws-client-1.1.2-SNAPSHOT.jar:]
at com.jackson.myapp.ws.v1.client.MyWebServiceSIBService$Proxy$_$$_Weld$Proxy$.<init>(MyWebServiceSIBService$Proxy$_$$_Weld$Proxy$.java) [myapp-ws-client-1.1.2-SNAPSHOT.jar:]
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) [rt.jar:1.7.0_45]
at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:57) [rt.jar:1.7.0_45]
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45) [rt.jar:1.7.0_45]
at java.lang.reflect.Constructor.newInstance(Constructor.java:526) [rt.jar:1.7.0_45]
at java.lang.Class.newInstance(Class.java:374) [rt.jar:1.7.0_45]
at org.jboss.weld.util.reflection.SecureReflections$16.work(SecureReflections.java:344) [weld-core-1.1.25.Final-redhat-2.jar:1.1.25.Final-redhat-2]
at org.jboss.weld.util.reflection.SecureReflectionAccess.run(SecureReflectionAccess.java:52) [weld-core-1.1.25.Final-redhat-2.jar:1.1.25.Final-redhat-2]
at org.jboss.weld.util.reflection.SecureReflectionAccess.runAsInstantiation(SecureReflectionAccess.java:173) [weld-core-1.1.25.Final-redhat-2.jar:1.1.25.Final-redhat-2]
... 49 more
Caused by: org.apache.cxf.service.factory.ServiceConstructionException: Failed to create service.
at org.apache.cxf.wsdl11.WSDLServiceFactory.<init>(WSDLServiceFactory.java:100)
at org.apache.cxf.jaxws.ServiceImpl.initializePorts(ServiceImpl.java:204)
at org.apache.cxf.jaxws.ServiceImpl.<init>(ServiceImpl.java:149)
... 62 more
Caused by: javax.wsdl.WSDLException: WSDLException: faultCode=PARSER_ERROR: Problem parsing 'http://localhost:8080/MyWebServiceSIB?wsdl'.: java.io.FileNotFoundException: http://localhost:8080/MyWebServiceSIB?wsdl
at com.ibm.wsdl.xml.WSDLReaderImpl.getDocument(WSDLReaderImpl.java:2198) [wsdl4j-1.6.2.jar:1.6]
at com.ibm.wsdl.xml.WSDLReaderImpl.readWSDL(WSDLReaderImpl.java:2390) [wsdl4j-1.6.2.jar:1.6]
at com.ibm.wsdl.xml.WSDLReaderImpl.readWSDL(WSDLReaderImpl.java:2422) [wsdl4j-1.6.2.jar:1.6]
at org.apache.cxf.wsdl11.WSDLManagerImpl.loadDefinition(WSDLManagerImpl.java:263)
at org.apache.cxf.wsdl11.WSDLManagerImpl.getDefinition(WSDLManagerImpl.java:206)
at org.apache.cxf.wsdl11.WSDLServiceFactory.<init>(WSDLServiceFactory.java:98)
... 64 more
Caused by: java.io.FileNotFoundException: http://localhost:8080/MyWebServiceSIB?wsdl
at sun.net.www.protocol.http.HttpURLConnection.getInputStream(HttpURLConnection.java:1624) [rt.jar:1.7.0_45]
at org.apache.xerces.impl.XMLEntityManager.setupCurrentEntity(XMLEntityManager.java:986)
at org.apache.xerces.impl.XMLVersionDetector.determineDocVersion(XMLVersionDetector.java:143)
at org.apache.xerces.parsers.XML11Configuration.parse(XML11Configuration.java:802)
at org.apache.xerces.parsers.XML11Configuration.parse(XML11Configuration.java:768)
at org.apache.xerces.parsers.XMLParser.parse(XMLParser.java:108)
at org.apache.xerces.parsers.DOMParser.parse(DOMParser.java:230)
at org.apache.xerces.jaxp.DocumentBuilderImpl.parse(DocumentBuilderImpl.java:285)
at com.ibm.wsdl.xml.WSDLReaderImpl.getDocument(WSDLReaderImpl.java:2188) [wsdl4j-1.6.2.jar:1.6]
... 69 more
16:51:47,677 ERROR [org.apache.catalina.core] (ServerService Thread Pool -- 198) JBWEB001103: Error detected during context start, will stop it
16:51:47,692 ERROR [org.jboss.msc.service.fail] (ServerService Thread Pool -- 198) MSC000001: Failed to start service jboss.web.deployment.default-host./: org.jboss.msc.service.StartException in servi
ce jboss.web.deployment.default-host./: org.jboss.msc.service.StartException in anonymous service: JBAS018040: Failed to start context
at org.jboss.as.web.deployment.WebDeploymentService$1.run(WebDeploymentService.java:97)
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:471) [rt.jar:1.7.0_45]
at java.util.concurrent.FutureTask.run(FutureTask.java:262) [rt.jar:1.7.0_45]
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145) [rt.jar:1.7.0_45]
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615) [rt.jar:1.7.0_45]
at java.lang.Thread.run(Thread.java:744) [rt.jar:1.7.0_45]
at org.jboss.threads.JBossThread.run(JBossThread.java:122)
Caused by: org.jboss.msc.service.StartException in anonymous service: JBAS018040: Failed to start context
at org.jboss.as.web.deployment.WebDeploymentService.doStart(WebDeploymentService.java:166)
at org.jboss.as.web.deployment.WebDeploymentService.access$000(WebDeploymentService.java:59)
at org.jboss.as.web.deployment.WebDeploymentService$1.run(WebDeploymentService.java:94)
... 6 more
16:51:48,082 INFO [org.jboss.as.webservices] (MSC service thread 1-2) JBAS015540: Stopping service jboss.ws.endpoint."myapp-web-2.1.1-SNAPSHOT.war".MyWebServiceSIB
16:51:48,098 INFO [org.jboss.weld.deployer] (MSC service thread 1-7) JBAS016009: Stopping weld service for deployment myapp-web-2.1.1-SNAPSHOT.war
16:51:48,160 INFO [org.jboss.as.webservices] (MSC service thread 1-8) JBAS015540: Stopping service jboss.ws.port-component-link
16:51:48,940 INFO [org.jboss.as.server.deployment] (MSC service thread 1-2) JBAS015877: Stopped deployment my-web-2.1.1-SNAPSHOT.war (runtime-name: my-web-2.1.1-SNAPSHOT.war) in 863ms
16:51:48,972 INFO [org.jboss.as.controller] (HttpManagementService-threads - 19) JBAS014774: Service status report