我们在WAS 8.5.0.0上部署了一个Web应用程序,我们正在使用PARENT_LAST类加载器(我们必须出于某种原因),在启动期间,有一些警告:
[12/16/14 17:19:15:088 CST] 00000048 InjectionProc E CWNEN0044E: A resource reference binding could not be found for the com.sun.xml.ws.transport.tcp.servicechannel.ServiceChannelWSImpl/wsContext resource reference, defined for the MyProjectName component.
[12/16/14 17:19:15:089 CST] 00000048 InjectionProc E CWNEN0044E: A resource reference binding could not be found for the com.sun.xml.ws.tx.webservice.member.coord.RegistrationRequesterPortTypeImpl/wsContext resource reference, defined for the MyProjectName component.
[12/16/14 17:19:15:090 CST] 00000048 InjectionProc E CWNEN0044E: A resource reference binding could not be found for the com.sun.xml.ws.tx.webservice.member.coord.RegistrationPortTypeImpl/wsContext resource reference, defined for the MyProjectName component.
[12/16/14 17:19:15:090 CST] 00000048 InjectionProc E CWNEN0044E: A resource reference binding could not be found for the com.sun.xml.ws.tx.webservice.member.coord.ActivationRequesterPortTypeImpl/wsContext resource reference, defined for the MyProjectName component.
[12/16/14 17:19:15:091 CST] 00000048 InjectionProc E CWNEN0044E: A resource reference binding could not be found for the com.sun.xml.ws.tx.webservice.member.coord.RegistrationCoordinatorPortTypeImpl/wsContext resource reference, defined for the MyProjectName component.
[12/16/14 17:19:15:092 CST] 00000048 InjectionProc E CWNEN0044E: A resource reference binding could not be found for the com.sun.xml.ws.mex.server.MEXEndpoint/wsContext resource reference, defined for the MyProjectName component.
[12/16/14 17:19:15:092 CST] 00000048 InjectionProc E CWNEN0044E: A resource reference binding could not be found for the com.sun.xml.ws.tx.webservice.member.at.CoordinatorPortTypeImpl/wsContext resource reference, defined for the MyProjectName component.
[12/16/14 17:19:15:093 CST] 00000048 InjectionProc E CWNEN0044E: A resource reference binding could not be found for the com.sun.xml.ws.tx.webservice.member.coord.ActivationCoordinatorPortTypeImpl/wsContext resource reference, defined for the MyProjectName component.
[12/16/14 17:19:15:093 CST] 00000048 InjectionProc E CWNEN0044E: A resource reference binding could not be found for the com.sun.xml.ws.tx.webservice.member.at.ParticipantPortTypeImpl/wsContext resource reference, defined for the MyProjectName component.
[12/16/14 17:19:15:094 CST] 00000048 InjectionProc E CWNEN0044E: A resource reference binding could not be found for the com.sun.xml.ws.tx.webservice.member.at.CompletionInitiatorPortTypeImpl/wsContext resource reference, defined for the MyProjectName component.
[12/16/14 17:19:15:095 CST] 00000048 InjectionProc E CWNEN0044E: A resource reference binding could not be found for the com.sun.xml.ws.tx.webservice.member.at.CompletionCoordinatorPortTypeImpl/wsContext resource reference, defined for the MyProjectName component.
在这些警告之后,有一个例外:
[12/16/14 17:19:15:213 CST] 00000048 webapp E com.ibm.ws.webcontainer.webapp.WebAppImpl populateJavaNameSpace SRVE8084E: An unexpected internal server error occurred while populating the namespace.
com.ibm.wsspi.injectionengine.InjectionException: CWNEN0044E: A resource reference binding could not be found for the following resource references [com.sun.xml.ws.transport.tcp.servicechannel.ServiceChannelWSImpl/wsContext, com.sun.xml.ws.tx.webservice.member.coord.RegistrationRequesterPortTypeImpl/wsContext, com.sun.xml.ws.tx.webservice.member.coord.RegistrationPortTypeImpl/wsContext, com.sun.xml.ws.tx.webservice.member.coord.ActivationRequesterPortTypeImpl/wsContext, com.sun.xml.ws.tx.webservice.member.coord.RegistrationCoordinatorPortTypeImpl/wsContext, com.sun.xml.ws.mex.server.MEXEndpoint/wsContext, com.sun.xml.ws.tx.webservice.member.at.CoordinatorPortTypeImpl/wsContext, com.sun.xml.ws.tx.webservice.member.coord.ActivationCoordinatorPortTypeImpl/wsContext, com.sun.xml.ws.tx.webservice.member.at.ParticipantPortTypeImpl/wsContext, com.sun.xml.ws.tx.webservice.member.at.CompletionInitiatorPortTypeImpl/wsContext, com.sun.xml.ws.tx.webservice.member.at.CompletionCoordinatorPortTypeImpl/wsContext], defined for the MyProjectName component.
at com.ibm.wsspi.injectionengine.InjectionProcessor.resolveInjectionBindings(InjectionProcessor.java:1208)
at com.ibm.wsspi.injectionengine.InjectionProcessorContextImpl.processBindings(InjectionProcessorContextImpl.java:56)
at com.ibm.ws.injectionengine.AbstractInjectionEngine.processBindings(AbstractInjectionEngine.java:807)
at com.ibm.ws.injectionengine.AbstractInjectionEngine.processInjectionMetaData(AbstractInjectionEngine.java:539)
at com.ibm.ws.injectionengine.SharedInjectionEngineImpl.processInjectionMetaData(SharedInjectionEngineImpl.java:208)
at com.ibm.ws.injectionengine.ReferenceContextImpl.process(ReferenceContextImpl.java:835)
at com.ibm.ws.webcontainer.webapp.WebAppImpl.populateJavaNameSpace(WebAppImpl.java:1112)
at com.ibm.ws.webcontainer.webapp.WebAppImpl.initialize(WebAppImpl.java:328)
at com.ibm.ws.webcontainer.webapp.WebGroupImpl.addWebApplication(WebGroupImpl.java:88)
at com.ibm.ws.webcontainer.VirtualHostImpl.addWebApplication(VirtualHostImpl.java:169)
at com.ibm.ws.webcontainer.WSWebContainer.addWebApp(WSWebContainer.java:749)
at com.ibm.ws.webcontainer.WSWebContainer.addWebApplication(WSWebContainer.java:634)
at com.ibm.ws.webcontainer.component.WebContainerImpl.install(WebContainerImpl.java:426)
at com.ibm.ws.webcontainer.component.WebContainerImpl.start(WebContainerImpl.java:718)
at com.ibm.ws.runtime.component.ApplicationMgrImpl.start(ApplicationMgrImpl.java:1170)
at com.ibm.ws.runtime.component.DeployedApplicationImpl.fireDeployedObjectStart(DeployedApplicationImpl.java:1370)
at com.ibm.ws.runtime.component.DeployedModuleImpl.start(DeployedModuleImpl.java:638)
at com.ibm.ws.runtime.component.DeployedApplicationImpl.start(DeployedApplicationImpl.java:968)
at com.ibm.ws.runtime.component.ApplicationMgrImpl.startApplication(ApplicationMgrImpl.java:769)
at com.ibm.ws.runtime.component.ApplicationMgrImpl.start(ApplicationMgrImpl.java:2172)
at com.ibm.ws.runtime.component.CompositionUnitMgrImpl.start(CompositionUnitMgrImpl.java:445)
at com.ibm.ws.runtime.component.CompositionUnitImpl.start(CompositionUnitImpl.java:123)
at com.ibm.ws.runtime.component.CompositionUnitMgrImpl.start(CompositionUnitMgrImpl.java:388)
at com.ibm.ws.runtime.component.CompositionUnitMgrImpl.access$500(CompositionUnitMgrImpl.java:116)
at com.ibm.ws.runtime.component.CompositionUnitMgrImpl$CUInitializer.run(CompositionUnitMgrImpl.java:994)
at com.ibm.wsspi.runtime.component.WsComponentImpl$_AsynchInitializer.run(WsComponentImpl.java:349)
at com.ibm.ws.util.ThreadPool$Worker.run(ThreadPool.java:1783)
对于超长日志信息感到抱歉,基本上,它是"CWNEN0044E: A resource reference binding could not be found for the following resource references..."
,所提及的类,如“ServiceChannelWSImpl
”,都在webservice-rt-2.0.1.jar
如果我删除了webservice-rt-2.0.1.jar
和webservice-api-2.0.1.jar
(以及依赖于这两个jar的我的类),那么错误就会消失。
我谷歌它,它似乎与注释扫描有关,所以我更新我的MANIFEST.MF
,并添加:
Ignore-Scanning-Archives: webservices-api-2.0.1.jar, webservices-rt-2.0.1.jar
但这不起作用,错误仍然存在。
还有其他建议吗?我没有想法,有些WAS专家可以帮忙吗?
[更新] 这是web.xml(抱歉,我必须删除公司相关信息)
<?xml version="1.0" encoding="UTF-8"?>
<web-app
xmlns="http://java.sun.com/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
id="project-1"
version="3.0"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd">
<display-name>project-1</display-name>
<listener>
<listener-class>com.mh.proj1.server.MyServletContextListener</listener-class>
</listener>
<listener>
<listener-class>org.jboss.resteasy.plugins.server.servlet.ResteasyBootstrap</listener-class>
</listener>
<listener>
<listener-class>org.jboss.resteasy.plugins.spring.SpringContextLoaderListener</listener-class>
</listener>
<listener>
<listener-class>org.springframework.web.context.request.RequestContextListener</listener-class>
</listener>
<listener>
<listener-class>com.mh.proj1.spring.ApplicationContextHolder</listener-class>
</listener>
<listener>
<listener-class>com.sun.xml.ws.transport.http.servlet.WSServletContextListener</listener-class>
</listener>
<context-param>
<param-name>webAppRootKey</param-name>
<param-value>proj1decision</param-value>
</context-param>
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>classpath:spring/applicationContext.xml</param-value>
</context-param>
<context-param>
<param-name>resteasy.providers</param-name>
<param-value>com.mh.proj1.exceptions.WAEExceptionMapper,com.mh.proj1.exceptions.GenericExceptionMapper</param-value>
</context-param>
<filter>
<filter-name>springSecurityFilterChain</filter-name>
<filter-class>org.springframework.web.filter.DelegatingFilterProxy</filter-class>
</filter>
<filter-mapping>
<filter-name>springSecurityFilterChain</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
<servlet>
<servlet-name>Resteasy</servlet-name>
<servlet-class>org.jboss.resteasy.plugins.server.servlet.HttpServletDispatcher</servlet-class>
</servlet>
<servlet>
<servlet-name>CALC WS</servlet-name>
<servlet-class>com.sun.xml.ws.transport.http.servlet.WSServlet</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>Resteasy</servlet-name>
<url-pattern>/rs/*</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>CALC WS</servlet-name>
<url-pattern>/ws/*</url-pattern>
</servlet-mapping>
<session-config>
<session-timeout>1</session-timeout>
</session-config>
</web-app>
以及该类中使用的注释:
@Component("CalcWS")
@WebService(endpointInterface = "com.a.b.BaseWS", targetNamespace = "http://driver.abc.com/", serviceName = "BaseWSService", portName = "BaseWSPort", wsdlLocation = "WEB-INF/wsdl/BaseWSService.wsdl")
public class CalcWS implements BaseWS {
...
}
答案 0 :(得分:2)
WebSphere提供JAX-WS运行时。所以我建议您从应用程序中删除任何与JAX-WS相关的jar并使用WebSphere提供的实现。看看你是否还会有错误。
如果要使用第三方提供程序,则需要为应用程序禁用WebSphere JAX-WS运行时。
要在应用程序级别关闭注释扫描,请将WAR文件或EJB模块的DisableIBMJAXWSEngine
中的META-INF/MANIFEST.MF
属性设置为true。例如:
Manifest-Version: 1.0
DisableIBMJAXWSEngine: true