Documentación
Las clases Action de Struts tienen que ser thread safe
Excepciones en Java
Si algo puede ir mal en un programa, podemos apostar a que irá mal. Ley fundamental de Murphy.
Los errores ocurren, los bugs son inevitables, somos humanos y cometemos errores al programar. Por eso es importante utilizar correctamente las excepciones en Java, aquí les paso algunos puntos importantes:
Utilizar excepciones solo para condiciones excepcionales
Este problema afecta seriamente la claridad del código. Cuando se utilizan las excepciones para realizar el control de flujo de un método se hace realmente difícil de leer, además de traer una sobrecarga a la JVM ya que ejecutar un bloque catch es mucho más costoso que un bloque else. Las excepciones deben utilizarse justamente para lo que son: condiciones excepcionales.
Utilizar checked exceptions de forma innecesaria
WebServices con Spring y Apache CXF
Para desarrollar Contract-Last WebServices pueden utilizar el framework Apache CXF que tiene una buena integración con Spring. Contract-Last significa que primero se define la interfase Java y en runtime se genera el archivo WSDL a partir de la interfase. A diferencia de Contract-First en el que primero tiene que estar definido el archivo WSDL y a partir de este se genera la interfase Java.
Con este tutorial fácilmente pueden implementar Contract-Last WebServices utilizando Spring y Apache CXF:
Writing a service with Spring
Para mis pruebas utilicé JBoss 4.2, cabe observar que los jars que se mencionan como dependencias no son necesarios en este servidor.