Java EE lesson from this week:
At least on WebSphere Application Server v6.1, ordering of elements matters in a .war file's web.xml definition file.
<servlet-mapping> definitions must occur after the servlet being mapped has been defined. So this works:
<servlet id="JAXWS_MyFirstService">
<description>My first JAX-WS demo service</description>
<display-name>JAX-WS: My First Service</display-name>
<servlet-name>com.ntldr.example.jaxws.MyFirstServiceSoap12PortImpl</servlet-name>
<servlet-class>com.ntldr.example.jaxws.MyFirstServiceSoap12PortImpl</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>
<servlate-mapping>
<servlet-name>com.ntldr.example.jaxws.MyFirstServiceSoap12PortImpl</servlet-name>
<url-pattern>/MyFirstService/Soap12</url-pattern>
</servlate-mapping>
(good!)
But this generates bizarre NullPointerException's during attempts to load the .ear file:
<servlate-mapping>
<servlet-name>com.ntldr.example.jaxws.MyFirstServiceSoap12PortImpl</servlet-name>
<url-pattern>/MyFirstService/Soap12</url-pattern>
</servlate-mapping>
...
<servlet id="JAXWS_MyFirstService">
<description>My first JAX-WS demo service</description>
<display-name>JAX-WS: My First Service</display-name>
<servlet-name>com.ntldr.example.jaxws.MyFirstServiceSoap12PortImpl</servlet-name>
<servlet-class>com.ntldr.example.jaxws.MyFirstServiceSoap12PortImpl</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>
(bad!)
Yes, I ran into this problem this week at work. And it took me forever to realize that I'd made such a stupid mistake. So, keep in mind: servlet-mapping comes after servlet!
Now playing: Emm Gryner – Stray Bullets – 05 Holiday