Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

WebSphere web.xml / bindings issue

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

like image 461
jwmajors81 Avatar asked Jul 18 '10 17:07

jwmajors81


People also ask

Where is Web xml in WebSphere?

The web. xml file must reside in the WEB-INF directory under the context of the hierarchy of directories that exist for a web application.

What is IBM Web BND xml?

The ibm-web-bnd.xml file provided binding between resource references used in web module and actual components, like datasouces, queues, etc. However since Java EE 6, you can actually use the lookup attribute from the @Resource annotation to provide them in the code.

What is security xml WebSphere?

In the WebSphere Application Server Network Deployment installation, the ws-security. xml file is at the cell level and defines the default binding information for Web Services Security for the entire cell. But each application server can have its own ws-security.

What is namespace binding in WebSphere?

The namespace binding can be for a constant string value, an EJB home, a CORBA CosNaming NamingContext or CORBA leaf node object, or an object that you can look up indirectly using JNDI. On the Specify basic properties page, specify the binding identifier and other properties for the binding.


2 Answers

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.

like image 113
jwmajors81 Avatar answered Sep 30 '22 11:09

jwmajors81


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

like image 27
Vijay Avatar answered Sep 30 '22 11:09

Vijay