WebSphere web.xml / bindings issue

31,546

Solution 1

The problem was caused by having two different servlets with the same name. Once I took out the items provided below I was able to start the application successfully again.

<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> 

I hope this helps others out.

Solution 2

Check if you are going to install the same ear (with different name) which already installed in WAS.

I was getting a similar exception for the above issue

Share:
31,546
jwmajors81
Author by

jwmajors81

Updated on December 18, 2020

Comments

  • jwmajors81
    jwmajors81 over 3 years

    I just recently started having issues while deploying EARS within websphere. The error I get after I install the apps is provided below.

    ------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
    com.ibm.ws.management.AdminServiceImpl$1@60726072
    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 = java.util.Hashtable@7e287e28
    _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 = java.util.Hashtable@60846084
    _domain_pattern = false
    _property_pattern = false
    val$operationName = startApplication
    val$params = 
    [0] = CommercialWSIntegration
    val$signature = 
    [0] = java.lang.String
      this$0 = com.ibm.ws.management.AdminServiceImpl@9bc09bc
    
    +Data for directive [defaultjmx] obtained. = 
    ==> Dump complete for com.ibm.ws.management.dm.JmxDM  = Sun Jul 18 10:51:19 CDT 2010
    

    I believe this has something to do with the resource bindings within the web.xml, but I'm not sure. I have not created the ibm proprietary binding files and included those in the EAR, but rather am expecting that to be done as part of the deployment process. In order to accomplish that I have tried telling it to generate new bindings while overwriting the existing ones, and other combination of bindings settings, but I always seem to get the error above. I have provided my web.xml below. Can you identify anything that looks wrong? I have tried removing the id attribute for the resource-ref elements, but that didn't seem to help.

    <?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>
    

    Thank you very much for your assistance. Jeremy