<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>
<body link="#355491" alink="#4262a1" vlink="#355491" style="background: #e2e2e2; margin: 0; padding: 20px;">
<div>
        <table cellpadding="0" bgcolor="#FFFFFF" border="0" cellspacing="0" style="border: 1px solid #dadada; margin-bottom: 30px; width: 100%; -moz-border-radius: 6px; -webkit-border-radius: 6px;">
                <tbody>
                        <tr>
                                <td>
                                        <table border="0" cellpadding="0" cellspacing="0" bgcolor="#FFFFFF" style="border: solid 2px #ccc; background: #dadada; width: 100%; -moz-border-radius: 6px; -webkit-border-radius: 6px;">
                                                <tbody>
                                                        <tr>
                                                                <td bgcolor="#000000" valign="middle" height="58px" style="border-bottom: 1px solid #ccc; padding: 20px; -moz-border-radius-topleft: 3px; -moz-border-radius-topright: 3px; -webkit-border-top-right-radius: 5px; -webkit-border-top-left-radius: 5px;">
                                                                        <h1 style="color: #333333; font: bold 22px Arial, Helvetica, sans-serif; margin: 0; display: block !important;">
                                                                        <!-- To have a header image/logo replace the name below with your img tag -->
                                                                        <!-- Email clients will render the images when the message is read so any image -->
                                                                        <!-- must be made available on a public server, so that all recipients can load the image. -->
                                                                        <a href="https://community.jboss.org/index.jspa" style="text-decoration: none; color: #E1E1E1">JBoss Community</a></h1>
                                                                </td>
                                                        </tr>
                                                        <tr>
                                                                <td bgcolor="#FFFFFF" style="font: normal 12px Arial, Helvetica, sans-serif; color:#333333; padding: 20px; -moz-border-radius-bottomleft: 4px; -moz-border-radius-bottomright: 4px; -webkit-border-bottom-right-radius: 5px; -webkit-border-bottom-left-radius: 5px;"><h3 style="margin: 10px 0 5px; font-size: 17px; font-weight: normal;">
JNDI "failed to create url injector" in Web Application Deployment
</h3>
<span style="margin-bottom: 10px;">
created by <a href="https://community.jboss.org/people/cdemaio">Chris DeMaio</a> in <i>JNDI and Naming</i> - <a href="https://community.jboss.org/message/742096#742096">View the full discussion</a>
</span>
<hr style="margin: 20px 0; border: none; background-color: #dadada; height: 1px;">
<div class="jive-rendered-content"><p>Greetings,</p><p style="min-height: 8pt; height: 8pt; padding: 0px;"> </p><p>We're attempting to migrate from JBoss 4.0.2 to 5.0.1 and are in the process of testing out our deployments, which are in this case separate web applications (portlets). Prior to deploying the webapp, I've placed the dependant datasource configuration and DBCP configurations in our /deploy directory. On startup in the logs, I can see that the JNDI datasource should be available:</p><p style="min-height: 8pt; height: 8pt; padding: 0px;"> </p><p>{code}12:36:35,264 INFO  [ConnectionFactoryBindingService] Bound ConnectionManager 'jboss.jca:service=DataSourceBinding,name=dataSourceRT' to JNDI name 'java:dataSourceRT'{code}</p><p style="min-height: 8pt; height: 8pt; padding: 0px;"> </p><p>and confirmed that by looking in the JMX-console under the Global JNDI Namespace section:</p><p style="min-height: 8pt; height: 8pt; padding: 0px;"> </p><p>{code}</p><p> +- relayhealth (class: org.jnp.interfaces.NamingContext)</p><p>  |   +- dataSourceRTE (class: java.net.URL){code}</p><p>{code}</p><p style="min-height: 8pt; height: 8pt; padding: 0px;"> </p><p>The web application's web.xml and jboss-web.xml are attached as well, but the JNDI lookup portions for each are:</p><p style="min-height: 8pt; height: 8pt; padding: 0px;"> </p><p><strong>web.xml:</strong></p><p style="min-height: 8pt; height: 8pt; padding: 0px;"> </p><p>{code:xml}</p><p><?xml version="1.0"?></p><p style="min-height: 8pt; height: 8pt; padding: 0px;"> </p><p style="min-height: 8pt; height: 8pt; padding: 0px;"> </p><p><!DOCTYPE web-app PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"</p><p><span>                         "</span><a class="jive-link-external-small" href="http://java.sun.com/dtd/web-app_2_3.dtd" target="_blank">http://java.sun.com/dtd/web-app_2_3.dtd</a><span>"></span></p><p style="min-height: 8pt; height: 8pt; padding: 0px;"> </p><p style="min-height: 8pt; height: 8pt; padding: 0px;"> </p><p><web-app></p><p style="min-height: 8pt; height: 8pt; padding: 0px;"> </p><p style="min-height: 8pt; height: 8pt; padding: 0px;"> </p><p>          <display-name>cpid</display-name></p><p style="min-height: 8pt; height: 8pt; padding: 0px;"> </p><p style="min-height: 8pt; height: 8pt; padding: 0px;"> </p><p>          <context-param></p><p>                    <param-name>webAppRootKey</param-name></p><p>                    <param-value>com.relayhealth.ch.cc.cpid</param-value></p><p>          </context-param></p><p style="min-height: 8pt; height: 8pt; padding: 0px;"> </p><p style="min-height: 8pt; height: 8pt; padding: 0px;"> </p><p>    <context-param></p><p>        <param-name>log4jConfigLocation</param-name></p><p>        <param-value>/WEB-INF/classes/log4j.properties</param-value></p><p>    </context-param></p><p>  </p><p>          <context-param></p><p>                    <param-name>contextConfigLocation</param-name></p><p>                    <param-value>/WEB-INF/context/applicationContext.xml</param-value></p><p>          </context-param></p><p style="min-height: 8pt; height: 8pt; padding: 0px;"> </p><p style="min-height: 8pt; height: 8pt; padding: 0px;"> </p><p>          <listener></p><p>                    <listener-class>org.springframework.web.util.WebAppRootListener</listener-class></p><p>          </listener></p><p style="min-height: 8pt; height: 8pt; padding: 0px;"> </p><p style="min-height: 8pt; height: 8pt; padding: 0px;"> </p><p>    <listener></p><p>        <listener-class>org.springframework.web.util.Log4jConfigListener</listener-class></p><p>    </listener></p><p style="min-height: 8pt; height: 8pt; padding: 0px;"> </p><p style="min-height: 8pt; height: 8pt; padding: 0px;"> </p><p>          <listener></p><p>                    <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class></p><p>          </listener></p><p style="min-height: 8pt; height: 8pt; padding: 0px;"> </p><p style="min-height: 8pt; height: 8pt; padding: 0px;"> </p><p>          <servlet></p><p>                    <servlet-name>ViewRendererServlet</servlet-name></p><p>                    <servlet-class>org.springframework.web.servlet.ViewRendererServlet</servlet-class></p><p>                    <load-on-startup>1</load-on-startup></p><p>          </servlet></p><p style="min-height: 8pt; height: 8pt; padding: 0px;"> </p><p style="min-height: 8pt; height: 8pt; padding: 0px;"> </p><p>          <servlet-mapping></p><p>                    <servlet-name>ViewRendererServlet</servlet-name></p><p>                    <url-pattern>/WEB-INF/servlet/view</url-pattern></p><p>          </servlet-mapping></p><p style="min-height: 8pt; height: 8pt; padding: 0px;"> </p><p style="min-height: 8pt; height: 8pt; padding: 0px;"> </p><p>    <taglib></p><p><span>        <taglib-uri></span><a class="jive-link-external-small" href="http://java.sun.com/jsp/jstl/core" target="_blank">http://java.sun.com/jsp/jstl/core</a><span></taglib-uri></span></p><p>        <taglib-location>/WEB-INF/tags/c.tld</taglib-location></p><p>    </taglib></p><p style="min-height: 8pt; height: 8pt; padding: 0px;"> </p><p style="min-height: 8pt; height: 8pt; padding: 0px;"> </p><p>    <taglib></p><p><span>        <taglib-uri></span><a class="jive-link-external-small" href="http://java.sun.com/jsp/jstl/fmt" target="_blank">http://java.sun.com/jsp/jstl/fmt</a><span></taglib-uri></span></p><p>        <taglib-location>/WEB-INF/tags/fmt.tld</taglib-location></p><p>    </taglib></p><p style="min-height: 8pt; height: 8pt; padding: 0px;"> </p><p style="min-height: 8pt; height: 8pt; padding: 0px;"> </p><p>    <taglib></p><p><span>        <taglib-uri></span><a class="jive-link-external-small" href="http://java.sun.com/jsp/jstl/functions" target="_blank">http://java.sun.com/jsp/jstl/functions</a><span></taglib-uri></span></p><p>        <taglib-location>/WEB-INF/tags/fn.tld</taglib-location></p><p>    </taglib></p><p style="min-height: 8pt; height: 8pt; padding: 0px;"> </p><p style="min-height: 8pt; height: 8pt; padding: 0px;"> </p><p>    <taglib></p><p><span>        <taglib-uri></span><a class="jive-link-external-small" href="http://www.springframework.org/tags" target="_blank">http://www.springframework.org/tags</a><span></taglib-uri></span></p><p>        <taglib-location>/WEB-INF/tags/spring.tld</taglib-location></p><p>    </taglib></p><p style="min-height: 8pt; height: 8pt; padding: 0px;"> </p><p style="min-height: 8pt; height: 8pt; padding: 0px;"> </p><p>          <!-- JNDI Config Lookups --></p><p>    <resource-ref></p><p>        <description>dataSourceRT URL</description></p><p>        <res-ref-name>relayhealth/dataSourceRT</res-ref-name></p><p>        <res-type>java.net.URL</res-type></p><p>        <res-auth>Container</res-auth></p><p>    </resource-ref></p><p>    <resource-ref></p><p>        <description>dataSourceFE URL</description></p><p>        <res-ref-name>relayhealth/dataSourceFE</res-ref-name></p><p>        <res-type>java.net.URL</res-type></p><p>        <res-auth>Container</res-auth></p><p>    </resource-ref></p><p style="min-height: 8pt; height: 8pt; padding: 0px;"> </p><p style="min-height: 8pt; height: 8pt; padding: 0px;"> </p><p>          <!-- JNDI Data Sources --></p><p>    <resource-ref></p><p>        <description>dataSourceRT URL</description></p><p>        <res-ref-name>jdbc/dataSourceRT</res-ref-name></p><p>        <res-type>javax.sql.DataSource</res-type></p><p>        <res-auth>Container</res-auth></p><p>    </resource-ref></p><p>    <resource-ref></p><p>        <description>dataSourceFE URL</description></p><p>        <res-ref-name>jdbc/dataSourceFE</res-ref-name></p><p>        <res-type>javax.sql.DataSource</res-type></p><p>        <res-auth>Container</res-auth></p><p>    </resource-ref></p><p style="min-height: 8pt; height: 8pt; padding: 0px;"> </p><p style="min-height: 8pt; height: 8pt; padding: 0px;"> </p><p></web-app></p><p style="min-height: 8pt; height: 8pt; padding: 0px;"> </p><p>{code:xml}</p><p style="min-height: 8pt; height: 8pt; padding: 0px;"> </p><p><strong>jboss-web.xml:</strong></p><p style="min-height: 8pt; height: 8pt; padding: 0px;"> </p><p>{code:xml}</p><p><jboss-web></p><p>          <context-root>cpidPortlet</context-root></p><p>          <!-- JNDI Config Lookups --></p><p>    <resource-ref></p><p>        <res-ref-name>relayhealth/dataSourceRT</res-ref-name></p><p>        <res-type>java.net.URL</res-type></p><p>        <jndi-name>relayhealth/dataSourceRT</jndi-name></p><p>    </resource-ref></p><p style="min-height: 8pt; height: 8pt; padding: 0px;"> </p><p style="min-height: 8pt; height: 8pt; padding: 0px;"> </p><p>    <resource-ref></p><p>        <res-ref-name>relayhealth/dataSourceFE</res-ref-name></p><p>        <res-type>java.net.URL</res-type></p><p>        <jndi-name>relayhealth/dataSourceFE</jndi-name></p><p>    </resource-ref></p><p style="min-height: 8pt; height: 8pt; padding: 0px;"> </p><p style="min-height: 8pt; height: 8pt; padding: 0px;"> </p><p style="min-height: 8pt; height: 8pt; padding: 0px;"> </p><p style="min-height: 8pt; height: 8pt; padding: 0px;"> </p><p>          <!-- JNDI Data Sources --></p><p>    <resource-ref></p><p>        <res-ref-name>jdbc/dataSourceRT</res-ref-name></p><p>        <res-type>javax.sql.DataSource</res-type></p><p>        <jndi-name>java:/dataSourceRT</jndi-name></p><p>    </resource-ref></p><p>    <resource-ref></p><p>        <res-ref-name>jdbc/dataSourceFE</res-ref-name></p><p>        <res-type>javax.sql.DataSource</res-type></p><p>        <jndi-name>java:/dataSourceFE</jndi-name></p><p>    </resource-ref></p><p>    </p><p></jboss-web></p><p style="min-height: 8pt; height: 8pt; padding: 0px;"> </p><p>{code:xml}</p><p style="min-height: 8pt; height: 8pt; padding: 0px;"> </p><p>When the application is deployed, in the logs we get:</p><p style="min-height: 8pt; height: 8pt; padding: 0px;"> </p><p>{code}</p><p>2012-06-15 14:10:17,967 [HDScanner] ERROR org.apache.catalina.core.StandardContext - Context [/cpidPortlet] startup failed due to previous errors</p><p>java.lang.RuntimeException: failed to create url injector for: env/relayhealth/dataSourceRT</p><p>        at org.jboss.web.tomcat.service.injection.WebResourceHandler.createURLInjector(WebResourceHandler.java:101)</p><p>        at org.jboss.web.tomcat.service.injection.WebResourceHandler.loadXmlResourceRefs(WebResourceHandler.java:184)</p><p>        at org.jboss.web.tomcat.service.injection.WebResourceHandler.loadXml(WebResourceHandler.java:327)</p><p>        at org.jboss.web.tomcat.service.TomcatInjectionContainer.processMetadata(TomcatInjectionContainer.java:564)</p><p>        at org.jboss.web.tomcat.service.WebCtxLoader.start(WebCtxLoader.java:158)</p><p>                    ..</p><p>                    Caused by: java.net.MalformedURLException: no protocol: relayhealth/dataSourceRT</p><p>        at java.net.URL.<init>(URL.java:567)</p><p>        at java.net.URL.<init>(URL.java:464)</p><p>        at java.net.URL.<init>(URL.java:413)</p><p>        at org.jboss.web.tomcat.service.injection.WebResourceHandler.createURLInjector(WebResourceHandler.java:96)</p><p>{code}</p><p style="min-height: 8pt; height: 8pt; padding: 0px;"> </p><p>I'm assuming it has to do with something with the web.xml and/or the jboss-web files in the deployment, but no combinations of changes I've made so far seem to resolve this.</p><p style="min-height: 8pt; height: 8pt; padding: 0px;"> </p><p>Any ideas on what would be causing this would be very helpful.</p></div>
<div style="background-color: #f4f4f4; padding: 10px; margin-top: 20px;">
<p style="margin: 0;">Reply to this message by <a href="https://community.jboss.org/message/742096#742096">going to Community</a></p>
        <p style="margin: 0;">Start a new discussion in JNDI and Naming at <a href="https://community.jboss.org/choose-container!input.jspa?contentType=1&containerType=14&container=2083">Community</a></p>
</div></td>
</tr>
</tbody>
</table>
</td>
</tr>
</tbody>
</table>
</div>
</body>
</html>