[jboss-user] [EJB/JBoss] - EJB3 TrailBlazer fixes to code to run on jboss-5.0.0.Beta2

jonharvey do-not-reply at jboss.com
Mon Jun 9 16:07:45 EDT 2008


Hi Folks,

I noticed this site was not working: 
http://trailblazer.demo.jboss.com/EJB3Trail/

I needed to use a JMS Queue and MDB on JBoss 5 Beta2 and get it to deploy cleanly on start and restart.

I downloaded the TrailBlazer source (from http://www.jboss.com/docs/trailblazer), updated:

build.xml by adding this line after line: 43

<include name="*-service.xml" />

so package-ejb looks like:
  <target name="package-ejb" depends="compile">
  |     <jar jarfile="${build.dir}/jar/beans.jar">
  |       <fileset dir="${build.dir}/classes">
  |         <include name="trail/**"/>
  |       </fileset>
  | 
  |       <fileset dir="dd/ejb">
  |         <include name="import.sql" />
  | 	<include name="*-service.xml" />
  |         <include name="*.properties"/>
  |       </fileset>
  | 
  |       <metainf dir="dd/ejb">
  |         <include name="persistence.xml"/>
  |       </metainf>
  |     </jar>
  |   </target>

Edited file: application.xml in dd/ear to be:
<?xml version="1.0" encoding="UTF-8"?>
  | <!DOCTYPE application PUBLIC
  | 	"-//Sun Microsystems, Inc.//DTD J2EE Application 1.3//EN"
  | 	"http://java.sun.com/dtd/application_1_3.dtd">
  | <application>
  |     <display-name>EJB3Trail</display-name>
  |     <description>J2EE Made Easy Trail Map</description>
  |     <module>
  |       <ejb>beans.jar</ejb>
  |     </module>
  |     <module>
  |         <web>
  |             <web-uri>web.war</web-uri>
  |             <context-root>EJB3Trail</context-root>
  |         </web>
  |     </module>
  | </application>

Added this file, named: ejb3trail-jms-service.xml  to:  dd/ejb/ directory:
<?xml version="1.0" encoding="UTF-8"?>
  | <!DOCTYPE server PUBLIC "-//JBoss//DTD MBean Service 5.0//EN" "http://www.jboss.org/j2ee/dtd/jboss-service_5_0.dtd">
  | <server>
  | 	<mbean code="org.jboss.jms.server.destination.QueueService"
  |       name="jboss.messaging.destination:service=Queue,name=mdb"
  |       xmbean-dd="xmdesc/Queue-xmbean.xml">
  | 		<depends optional-attribute-name="ServerPeer">jboss.messaging:service=ServerPeer</depends>
  | 		<depends>jboss.messaging:service=PostOffice</depends>
  | 		<attribute name="RedeliveryDelay">5000</attribute>
  | 	</mbean>
  | 	<mbean code="org.jboss.jms.server.destination.QueueService"
  |       name="jboss.messaging.destination:service=Queue,name=mdpojo"
  |       xmbean-dd="xmdesc/Queue-xmbean.xml">
  | 		<depends optional-attribute-name="ServerPeer">jboss.messaging:service=ServerPeer</depends>
  | 		<depends>jboss.messaging:service=PostOffice</depends>
  | 		<attribute name="RedeliveryDelay">5000</attribute>
  | 	</mbean>
  | 	<mbean code="org.jboss.jms.server.destination.QueueService"
  |       name="jboss.messaging.destination:service=Queue,name=injection"
  |       xmbean-dd="xmdesc/Queue-xmbean.xml">
  | 		<depends optional-attribute-name="ServerPeer">jboss.messaging:service=ServerPeer</depends>
  | 		<depends>jboss.messaging:service=PostOffice</depends>
  | 		<attribute name="RedeliveryDelay">5000</attribute>
  | 	</mbean>
  | </server>



Edited the file: web.xml in dd/web to be:
<?xml version="1.0" encoding="UTF-8"?>
  | <!DOCTYPE web-app PUBLIC
  |  "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"
  |  "http://java.sun.com/dtd/web-app_2_3.dtd" >
  | 
  | <web-app>
  | 	<display-name>EJB3Trail</display-name>
  | 
  | 	<security-constraint>
  | 		<web-resource-collection>
  | 			<web-resource-name>
  | 				The Protected Calculator
  | 			</web-resource-name>
  | 			<url-pattern>/services/security/addfund.jsp</url-pattern>
  | 			<url-pattern>/services/security/addinvestor.jsp</url-pattern>
  | 			<url-pattern>/services/security/calculator.jsp</url-pattern>
  | 			<http-method>GET</http-method>
  | 			<http-method>POST</http-method>
  | 		</web-resource-collection>
  | 		<auth-constraint>
  | 			<role-name>AdminUser</role-name>
  | 			<role-name>RegularUser</role-name>
  | 		</auth-constraint>
  | 		<user-data-constraint>
  | 			<transport-guarantee>NONE</transport-guarantee>
  | 		</user-data-constraint>
  | 	</security-constraint>
  | 
  | 	<login-config>
  | 		<auth-method>FORM</auth-method>
  | 		<form-login-config>
  | 			<form-login-page>/services/security/login.html</form-login-page>
  | 			<form-error-page>/services/security/loginFailed.html</form-error-page>
  | 		</form-login-config>
  | 	</login-config>
  | 
  | 	<security-role>
  | 		<role-name>AdminUser</role-name>
  | 	</security-role>
  | 	<security-role>
  | 		<role-name>RegularUser</role-name>
  | 	</security-role>
  | 
  | </web-app>

After the annotation: 
@MessageDriven in src/trail/injection/CalculatorMDB.java and
src/trail/mdb/CalculatorBean.java 
and
@Consumer in: src/trail/mdpojo/MdpojoCalculator.java

I added this annotation:
@Depends( { "jboss.messaging:service=ServerPeer" })

So for: src/trail/injection/CalculatorMDB.java class begins:
@MessageDriven(activationConfig = {
  | 		@ActivationConfigProperty(propertyName = "destinationType", propertyValue = "javax.jms.Queue"),
  | 		@ActivationConfigProperty(propertyName = "destination", propertyValue = "queue/injection") })
  | @Depends( { "jboss.messaging:service=ServerPeer" })
  | public class CalculatorMDB implements MessageListener {
Now if you run ant (default target) and deploy the EJB3Trail.ear into default/deploy, it should all work.

Browse to see all is OK at: http://localhost:8080/EJB3Trail/

View the original post : http://www.jboss.com/index.html?module=bb&op=viewtopic&p=4156821#4156821

Reply to the post : http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&p=4156821



More information about the jboss-user mailing list