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
Disclaimer The opinions expressed herein are my own personal opinions and do not represent my employer's view in any way.