我剛剛在websphere內部部署EARS時遇到了問題。下面提供了安裝應用程序後出現的錯誤。WebSphere web.xml/bindings問題
------Start of DE processing------ = [7/18/10 10:51:19:309 CDT] , key = javax.management.MBeanException com.ibm.ws.management.AdminServiceImpl.invoke 679
Exception = javax.management.MBeanException
Source = com.ibm.ws.management.AdminServiceImpl.invoke
probeid = 679
Stack Dump = javax.management.MBeanException: Exception thrown in RequiredModelMBean while trying to invoke operation startApplication
at javax.management.modelmbean.RequiredModelMBean.invokeMethod(RequiredModelMBean.java:1119)
at javax.management.modelmbean.RequiredModelMBean.invoke(RequiredModelMBean.java:973)
...
...
at com.ibm.io.async.ResultHandler$2.run(ResultHandler.java:881)
at com.ibm.ws.util.ThreadPool$Worker.run(ThreadPool.java:1497)
Caused by: com.ibm.ws.exception.RuntimeError: java.lang.RuntimeException: java.lang.NullPointerException
at com.ibm.ws.runtime.component.ApplicationMgrImpl.startApplication(ApplicationMgrImpl.java:955)
at com.ibm.ws.runtime.component.ApplicationMgrImpl$1.run(ApplicationMgrImpl.java:1437)
at com.ibm.ws.security.auth.ContextManagerImpl.runAs(ContextManagerImpl.java:4191)
at com.ibm.ws.security.auth.ContextManagerImpl.runAsSystem(ContextManagerImpl.java:4289)
at com.ibm.ws.security.core.SecurityContext.runAsSystem(SecurityContext.java:245)
at com.ibm.ws.runtime.component.ApplicationMgrImpl.startApplication(ApplicationMgrImpl.java:1442)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:79)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
...
...
at sun.reflect.misc.MethodUtil.invoke(MethodUtil.java:271)
at javax.management.modelmbean.RequiredModelMBean.invokeMethod(RequiredModelMBean.java:1092)
... 64 more
Caused by: java.lang.RuntimeException: java.lang.NullPointerException
at com.ibm.ws.runtime.component.DeployedApplicationImpl.start(DeployedApplicationImpl.java:884)
at com.ibm.ws.runtime.component.ApplicationMgrImpl.startApplication(ApplicationMgrImpl.java:921)
... 79 more
Caused by: java.lang.NullPointerException
at com.ibm.ws.wswebcontainer.webapp.WebAppConfigurationHelper.constructServletMappings(WebAppConfigurationHelper.java:406)
at com.ibm.ws.wswebcontainer.webapp.WebAppConfigurationHelper.createConfiguration(WebAppConfigurationHelper.java:148)
at com.ibm.ws.webcontainer.metadata.WebMetaDataFactory.createMetaData(WebMetaDataFactory.java:180)
at com.ibm.ws.runtime.component.MetaDataMgrImpl.createMetaDataFromFactories(MetaDataMgrImpl.java:172)
at com.ibm.ws.runtime.component.MetaDataMgrImpl.createMetaData(MetaDataMgrImpl.java:306)
at com.ibm.ws.runtime.component.DeployedModuleImpl.start(DeployedModuleImpl.java:581)
at com.ibm.ws.runtime.component.DeployedApplicationImpl.start(DeployedApplicationImpl.java:834)
... 80 more
Dump of callerThis =
Object type = com.ibm.ws.management.AdminServiceImpl$1
[email protected]
parm[0] = WebSphere:name=ApplicationManager,process=server1,platform=proxy,node=cc503216Node02,version=6.1.0.29,type=ApplicationManager,mbeanIdentifier=ApplicationManager,cell=cc503216Node02Cell,spec=1.0
==> Performing default dump from com.ibm.ws.management.dm.JmxDM = Sun Jul 18 10:51:19 CDT 2010
Dump of callerThis =
Object type = com.ibm.ws.management.AdminServiceImpl$1
val$origName =
oldSerialVersionUID = -5467795090068647408
newSerialVersionUID = 1081892073854801359
oldSerialPersistentFields = [Ljava.io.ObjectStreamField;@7b127b12
newSerialPersistentFields = {}
serialVersionUID = 1081892073854801359
serialPersistentFields = this.val$origName.newSerialPersistentFields
compat = false
_Empty_property_array = {}
_EmptyPropertyList = [email protected]
_canonicalName = WebSphere:cell=cc503216Node02Cell,mbeanIdentifier=ApplicationManager,name=ApplicationManager,node=cc503216Node02,platform=proxy,process=server1,spec=1.0,type=ApplicationManager,version=6.1.0.29
_kp_array = [Ljavax.management.ObjectName$Property;@57a257a2
_ca_array = [Ljavax.management.ObjectName$Property;@57be57be
_domain_length = 9
_propertyList = [email protected]
_domain_pattern = false
_property_pattern = false
val$operationName = startApplication
val$params =
[0] = CommercialWSIntegration
val$signature =
[0] = java.lang.String
this$0 = [email protected]
+Data for directive [defaultjmx] obtained. =
==> Dump complete for com.ibm.ws.management.dm.JmxDM = Sun Jul 18 10:51:19 CDT 2010
我認爲這與web.xml中的資源綁定有關,但我不確定。我還沒有創建ibm專有綁定文件,並將它們包含在EAR中,但我期望將其作爲部署過程的一部分來完成。爲了做到這一點,我試圖告訴它在覆蓋現有的綁定和其他綁定設置的組合的同時生成新的綁定,但我總是看到上面的錯誤。我在下面提供了我的web.xml。你能找出看起來不對的東西嗎?我嘗試刪除resource-ref元素的id屬性,但這似乎沒有幫助。
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" id="WebApp_ID" version="2.5">
<display-name>
CommercialWSIntegrationWARProject
</display-name>
<context-param>
<param-name>
log4jConfigLocation
</param-name>
<param-value>
/WEB-INF/log4j.xml
</param-value>
</context-param>
<!-- Reads request input using UTF-8 encoding -->
<filter>
<filter-name>
characterEncodingFilter
</filter-name>
<filter-class>
org.springframework.web.filter.CharacterEncodingFilter
</filter-class>
<init-param>
<param-name>
encoding
</param-name>
<param-value>
UTF-8
</param-value>
</init-param>
<init-param>
<param-name>
forceEncoding
</param-name>
<param-value>
true
</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>
characterEncodingFilter
</filter-name>
<url-pattern>
/*
</url-pattern>
</filter-mapping>
<listener>
<listener-class>
org.springframework.web.util.Log4jConfigListener
</listener-class>
</listener>
<servlet>
<description>
</description>
<display-name>
CommercialPDInitServlett
</display-name>
<servlet-name>
CommercialPDInitServlett
</servlet-name>
<servlet-class>
com.inscompany.cqp.integration.CommercialPDInitServlett
</servlet-class>
<load-on-startup>
-1
</load-on-startup>
</servlet>
<servlet>
<servlet-name>
Spring MVC Dispatcher Servlet
</servlet-name>
<servlet-class>
org.springframework.web.servlet.DispatcherServlet
</servlet-class>
<init-param>
<param-name>
contextConfigLocation
</param-name>
<param-value>
/WEB-INF/spring/app-config.xml
</param-value>
</init-param>
<load-on-startup>
1
</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>
default
</servlet-name>
<url-pattern>
/css/*.css
</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>
default
</servlet-name>
<url-pattern>
/js/*.js
</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>
CommercialPDInitServlett
</servlet-name>
<url-pattern>
/Initialize
</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>
Spring MVC Dispatcher Servlet
</servlet-name>
<url-pattern>
/rest/*
</url-pattern>
</servlet-mapping>
<resource-ref id="ResourceRef_1191955667160">
<description>
</description>
<res-ref-name>
url/pdProps
</res-ref-name>
<res-type>
java.net.URL
</res-type>
<res-auth>
Container
</res-auth>
<res-sharing-scope>
Shareable
</res-sharing-scope>
<mapped-name>url/pdProps</mapped-name>
</resource-ref>
<resource-ref id="ResourceRef_1191957500691">
<description>
</description>
<res-ref-name>
jdbc/CCDB2
</res-ref-name>
<res-type>
javax.sql.DataSource
</res-type>
<res-auth>
Container
</res-auth>
<res-sharing-scope>
Shareable
</res-sharing-scope>
<mapped-name>jdbc/CCDB2</mapped-name>
</resource-ref>
<resource-ref id="ResourceRef_1271699412761">
<description>
</description>
<res-ref-name>
jms/QMGR
</res-ref-name>
<res-type>
javax.jms.ConnectionFactory
</res-type>
<res-auth>
Container
</res-auth>
<res-sharing-scope>
Shareable
</res-sharing-scope>
<mapped-name>jms/QMGR</mapped-name>
</resource-ref>
<resource-ref id="ResourceRef_1271699443228">
<description>
</description>
<res-ref-name>
jms/SVC.MDB.APP
</res-ref-name>
<res-type>
javax.jms.Queue
</res-type>
<res-auth>
Container
</res-auth>
<res-sharing-scope>
Shareable
</res-sharing-scope>
<mapped-name>jms/SVC.MDB.APP</mapped-name>
</resource-ref>
</web-app>
非常感謝您的協助。 Jeremy
也許你有一些不好的配置(?),但NPE不應該來自服務器代碼。我會說這看起來像一張支持票。 – Rick 2010-07-19 14:32:07