Building & running PetStore 1.3.1
nusa Aug 22, 2002 7:02 AMHi,
I manage to compile PetStore 1.3.1. ( and WebService ) under Windows 2K.
But first of all you need to download the JWSDP first.
Here are the steps :
1. modify the <petstore.home>\src\build.properties so it looks like this :
j2ee.server.name=localhost
j2ee.server.port=8000
j2ee.home=<your_j2ee_home>
jboss.home=<your_jboss_home>
jwsdp.home=<your_jwsdp_home>
j2ee.classpath=${jboss.home}\\client\\jboss-j2ee.jar;\
${jboss.home}\\server\\<your_config>\\lib\\activation.jar;\
${jboss.home}\\server\\<your_config>\\lib\\javax.servlet.jar;\
${jboss.home}\\server\\<your_config>\\lib\\mail.jar;\
${j2ee.home}\\lib\\locale;\
${j2ee.home}\\lib\\j2eetools.jar;\
${jwsdp.home}\\common\\lib\\jaxm-api.jar;\
${jwsdp.home}\\common\\lib\\jaxm-runtime.jar;\
${jwsdp.home}\\common\\lib\\jaxp-api.jar;\
${jwsdp.home}\\common\\lib\\jaxr-api.jar;\
${jwsdp.home}\\common\\lib\\jaxr-ri.jar;\
${jwsdp.home}\\common\\lib\\jaxrpc-api.jar;\
${jwsdp.home}\\common\\lib\\jaxrpc-ri.jar;\
${jwsdp.home}\\common\\lib\\saaj-api.jar;\
${jwsdp.home}\\common\\lib\\saaj-ri.jar;
2. in each build.xml put into comment every occurence of the property j2ee.classpath, i.e. :
<!-- property name="j2ee.classpath" value="..." /-->
3. as I use mySQL database, I follow this http://java.sun.com/blueprints/code/jps1.1/docs/configuring.html,
modify the following files :
%JBOSS_HOME%\server\<your_config>\conf\login-config.xml
%JBOSS_HOME%\server\<your_config>\conf\standardjaws.xml
%JBOSS_HOME%\server\<your_config>\conf\standardjbosscmp-jdbc.xml
and copy %JBOSS_HOME%\docs\examples\jcs\mysql-service.xml to %JBOSS_HOME%\server\<your_config>\deploy
4. run the command <petstore.home>\src\webservices\build -logfile build.log
This will create ear, war, jar files only, not to deploy.
I modified <petstore.home>\src\webservices\build.bat file so it looks like
( maybe this is not necessary, and I use Ant 1.5 ) :
set ANT_CLASSPATH=%ANT_HOME%/lib/ant.jar;%ANT_HOME%/lib/xercesImpl.jar;%ANT_HOME%/lib/xml-apis.jar;%ANT_CLASSPATH%
set ANT_CLASSPATH=%JBOSS_HOME%/client/jboss-j2ee.jar;%ANT_CLASSPATH%
5. check your <petstore.home>\src\webservices\build.log file, and make sure the build was success.
6. copy the ear files generated into %JBOSS_HOME%\server\<your_config>\deploy.
7. copy the %JWSDP_HOME%\commom\lib\jax*.jar and %JWSDP_HOME%\commom\lib\saaj*.jar into %JBOSS_HOME%\server\<your_config>\deploy
as per http://www.jboss.org/modules/bb/index.html?module=bb&op=viewtopic&t=forums/ you may notice, I leave them as they are the sun-j2ee-ri.xml files as per http://www.jboss.org/modules/bb/index.html?module=bb&op=viewtopic&t=forums/ this is what I have had when running JBoss-3.0.1_tomcat-4.0.4 with '-c all' option :
(1)
...
2002-08-21 14:47:24,260 INFO [org.jboss.naming.NamingService] Starting jnp server
2002-08-21 14:47:24,451 DEBUG [org.jboss.naming.NamingService] NamingServer stub: org.jnp.server.NamingServer_Stub[RemoteStub [ref: [endpoint:[193.122.32.143:1532](local),objID:[0]]]]
2002-08-21 14:47:24,521 ERROR [org.jboss.naming.NamingService] Could not start on port 1099
java.net.BindException: Address already in use: JVM_Bind
at java.net.PlainSocketImpl.socketBind(Native Method)
at java.net.PlainSocketImpl.bind(PlainSocketImpl.java:321)
(2)
...
2002-08-21 14:47:53,165 DEBUG [org.jboss.ejb.plugins.cmp.jdbc.JDBCStoreManager.ContactInfoEJB] Initializing CMP plugin for ContactInfoEJB
2002-08-21 14:47:53,325 DEBUG [org.jboss.ejb.plugins.cmp.jdbc.JDBCStoreManager.ContactInfoEJB] Loading standardjbosscmp-jdbc.xml : file:/C:/Java/Software/jboss-3.0.1_tomcat-4.0.4/server/all/conf/standardjbosscmp-jdbc.xml
2002-08-21 14:47:53,585 DEBUG [org.jboss.util.NestedThrowable] org.jboss.util.NestedThrowable.parentTraceEnabled=true
2002-08-21 14:47:53,585 DEBUG [org.jboss.util.NestedThrowable] org.jboss.util.NestedThrowable.nestedTraceEnabled=false
2002-08-21 14:47:53,585 DEBUG [org.jboss.util.NestedThrowable] org.jboss.util.NestedThrowable.detectDuplicateNesting=true
2002-08-21 14:47:53,575 WARN [org.jboss.system.ServiceController] Problem starting service jboss.j2ee:service=EJB,jndiName=ContactInfoEJB
org.jboss.deployment.DeploymentException: Atleast one role of a foreign-key mapped relationship must have key fields: ejb-relation-name=
at org.jboss.ejb.plugins.cmp.jdbc.metadata.JDBCRelationMetaData.(JDBCRelationMetaData.java:316)
at org.jboss.ejb.plugins.cmp.jdbc.metadata.JDBCApplicationMetaData.(JDBCApplicationMetaData.java:325)
at org.jboss.ejb.plugins.cmp.jdbc.metadata.JDBCXmlFileLoader.load(JDBCXmlFileLoader.java:67)
(3)
...
2002-08-21 14:47:53,705 DEBUG [org.jboss.ejb.plugins.cmp.jdbc.JDBCStoreManager.AddressEJB] Initializing CMP plugin for AddressEJB
2002-08-21 14:47:53,776 DEBUG [org.jboss.ejb.plugins.cmp.jdbc.JDBCStoreManager.AddressEJB] Loading standardjbosscmp-jdbc.xml : file:/C:/Java/Software/jboss-3.0.1_tomcat-4.0.4/server/all/conf/standardjbosscmp-jdbc.xml
2002-08-21 14:47:53,876 WARN [org.jboss.system.ServiceController] Problem starting service jboss.j2ee:service=EJB,jndiName=AddressEJB
org.jboss.deployment.DeploymentException: Atleast one role of a foreign-key mapped relationship must have key fields: ejb-relation-name=
at org.jboss.ejb.plugins.cmp.jdbc.metadata.JDBCRelationMetaData.(JDBCRelationMetaData.java:316)
at org.jboss.ejb.plugins.cmp.jdbc.metadata.JDBCApplicationMetaData.(JDBCApplicationMetaData.java:325)
at org.jboss.ejb.plugins.cmp.jdbc.metadata.JDBCXmlFileLoader.load(JDBCXmlFileLoader.java:67)
(4)
...
2002-08-21 14:47:54,046 DEBUG [org.jboss.ejb.plugins.cmp.jdbc.JDBCStoreManager.LineItemEJB] Initializing CMP plugin for LineItemEJB
2002-08-21 14:47:54,116 DEBUG [org.jboss.ejb.plugins.cmp.jdbc.JDBCStoreManager.LineItemEJB] Loading standardjbosscmp-jdbc.xml : file:/C:/Java/Software/jboss-3.0.1_tomcat-4.0.4/server/all/conf/standardjbosscmp-jdbc.xml
2002-08-21 14:47:54,226 WARN [org.jboss.system.ServiceController] Problem starting service jboss.j2ee:service=EJB,jndiName=LineItemEJB
org.jboss.deployment.DeploymentException: Atleast one role of a foreign-key mapped relationship must have key fields: ejb-relation-name=
at org.jboss.ejb.plugins.cmp.jdbc.metadata.JDBCRelationMetaData.(JDBCRelationMetaData.java:316)
at org.jboss.ejb.plugins.cmp.jdbc.metadata.JDBCApplicationMetaData.(JDBCApplicationMetaData.java:325)
at org.jboss.ejb.plugins.cmp.jdbc.metadata.JDBCXmlFileLoader.load(JDBCXmlFileLoader.java:67)
(5)
...
2002-08-21 14:47:54,346 DEBUG [org.jboss.ejb.plugins.cmp.jdbc.JDBCStoreManager.CreditCardEJB] Initializing CMP plugin for CreditCardEJB
2002-08-21 14:47:54,457 DEBUG [org.jboss.ejb.plugins.cmp.jdbc.JDBCStoreManager.CreditCardEJB] Loading standardjbosscmp-jdbc.xml : file:/C:/Java/Software/jboss-3.0.1_tomcat-4.0.4/server/all/conf/standardjbosscmp-jdbc.xml
2002-08-21 14:47:54,577 WARN [org.jboss.system.ServiceController] Problem starting service jboss.j2ee:service=EJB,jndiName=CreditCardEJB
org.jboss.deployment.DeploymentException: Atleast one role of a foreign-key mapped relationship must have key fields: ejb-relation-name=
at org.jboss.ejb.plugins.cmp.jdbc.metadata.JDBCRelationMetaData.(JDBCRelationMetaData.java:316)
at org.jboss.ejb.plugins.cmp.jdbc.metadata.JDBCApplicationMetaData.(JDBCApplicationMetaData.java:325)
at org.jboss.ejb.plugins.cmp.jdbc.metadata.JDBCXmlFileLoader.load(JDBCXmlFileLoader.java:67)
(6)
...
2002-08-21 14:47:54,707 DEBUG [org.jboss.ejb.plugins.cmp.jdbc.JDBCStoreManager.PurchaseOrderEJB] Initializing CMP plugin for PurchaseOrderEJB
2002-08-21 14:47:54,777 DEBUG [org.jboss.ejb.plugins.cmp.jdbc.JDBCStoreManager.PurchaseOrderEJB] Loading standardjbosscmp-jdbc.xml : file:/C:/Java/Software/jboss-3.0.1_tomcat-4.0.4/server/all/conf/standardjbosscmp-jdbc.xml
2002-08-21 14:47:54,937 WARN [org.jboss.system.ServiceController] Problem starting service jboss.j2ee:service=EJB,jndiName=PurchaseOrderEJB
org.jboss.deployment.DeploymentException: Atleast one role of a foreign-key mapped relationship must have key fields: ejb-relation-name=
at org.jboss.ejb.plugins.cmp.jdbc.metadata.JDBCRelationMetaData.(JDBCRelationMetaData.java:316)
at org.jboss.ejb.plugins.cmp.jdbc.metadata.JDBCApplicationMetaData.(JDBCApplicationMetaData.java:325)
at org.jboss.ejb.plugins.cmp.jdbc.metadata.JDBCXmlFileLoader.load(JDBCXmlFileLoader.java:67)
(7)
...
2002-08-21 14:47:59,184 DEBUG [org.jboss.web.catalina.EmbeddedCatalinaServiceSX] Binding 'url/EntityCatalogURL' to URL: null
2002-08-21 14:47:59,184 ERROR [org.jboss.deployment.scanner.URLDeploymentScanner] Failed to deploy: org.jboss.deployment.scanner.URLDeploymentScanner$DeployedURL@ba4afdfc{ url=file:/C:/Java/Software/jboss-3.0.1_tomcat-4.0.4/server/all/deploy/opc.ear, deployedLastModified=0 }
org.jboss.deployment.DeploymentException: Error during deploy; - nested throwable: (javax.naming.NamingException: Malformed URL:null)
at org.jboss.web.AbstractWebContainer.start(AbstractWebContainer.java:309)
at org.jboss.deployment.MainDeployer.start(MainDeployer.java:796)
at org.jboss.deployment.MainDeployer.start(MainDeployer.java:788)
(8)
...
2002-08-21 14:48:02,439 DEBUG [org.jboss.deployment.MainDeployer] Done with create step of deploying catalog-ejb.jar
2002-08-21 14:48:02,439 DEBUG [org.jboss.deployment.MainDeployer] create step for deployment file:/C:/Java/Software/jboss-3.0.1_tomcat-4.0.4/server/all/tmp/deploy/server/all/deploy/petstore.ear/100.petstore.ear-contents/customer-ejb.jar
2002-08-21 14:48:02,529 ERROR [org.jboss.deployment.scanner.URLDeploymentScanner] Failed to deploy: org.jboss.deployment.scanner.URLDeploymentScanner$DeployedURL@b37a0fee{ url=file:/C:/Java/Software/jboss-3.0.1_tomcat-4.0.4/server/all/deploy/petstore.ear, deployedLastModified=0 }
org.jboss.deployment.DeploymentException: ejb-relation-name must be unique in ejb-jar.xml file: ejb-relation-name is
at org.jboss.metadata.ApplicationMetaData.importEjbJarXml(ApplicationMetaData.java:256)
at org.jboss.metadata.XmlFileLoader.load(XmlFileLoader.java:151)
at org.jboss.ejb.EJBDeployer.create(EJBDeployer.java:321)
(9)
...
2002-08-21 14:48:04,302 DEBUG [org.jboss.web.catalina.EmbeddedCatalinaServiceSX] linkResourceEnvRefs
2002-08-21 14:48:04,302 DEBUG [org.jboss.web.catalina.EmbeddedCatalinaServiceSX] linkResourceRefs
2002-08-21 14:48:04,302 DEBUG [org.jboss.web.catalina.EmbeddedCatalinaServiceSX] linkEjbRefs
2002-08-21 14:48:04,302 ERROR [org.jboss.deployment.scanner.URLDeploymentScanner] Failed to deploy: org.jboss.deployment.scanner.URLDeploymentScanner$DeployedURL@80b80e87{ url=file:/C:/Java/Software/jboss-3.0.1_tomcat-4.0.4/server/all/deploy/petstoreadmin.ear, deployedLastModified=0 }
org.jboss.deployment.DeploymentException: Error during deploy; - nested throwable: (javax.naming.NamingException: ejb-ref: ejb/remote/OPCAdminFacade, no ejb-link match, use jndi-name in jboss-web.xml)
at org.jboss.web.AbstractWebContainer.start(AbstractWebContainer.java:309)
at org.jboss.deployment.MainDeployer.start(MainDeployer.java:796)
at org.jboss.deployment.MainDeployer.start(MainDeployer.java:788)
(10)
...
2002-08-21 14:48:05,974 INFO [org.jboss.ejb.EjbModule] Remove JSR-77 EJB Module: jboss.management.single:J2EEApplication=supplier.ear,J2EEServer=Single,j2eeType=EJBModule,name=supplierpo-ejb.jar
2002-08-21 14:48:05,984 DEBUG [org.jboss.management.j2ee.J2EEManagedObject] preDeregister(), parent: jboss.management.single:J2EEServer=Single,j2eeType=J2EEApplication,name=supplier.ear
2002-08-21 14:48:05,984 ERROR [org.jboss.ejb.EjbModule] Initialization failed
javax.management.InstanceAlreadyExistsException: jboss.j2ee:service=EJB,jndiName=ContactInfoEJB already registered.
at org.jboss.mx.server.registry.BasicMBeanRegistry.add(BasicMBeanRegistry.java:657)
at org.jboss.mx.server.registry.BasicMBeanRegistry.registerMBean(BasicMBeanRegistry.java:240)
at org.jboss.mx.server.MBeanServerImpl.registerMBean(MBeanServerImpl.java:949)
(11)
...
2002-08-21 14:48:06,064 WARN [org.jboss.system.ServiceController] Problem creating service jboss.j2ee:service=EjbModule,url=file%/C%/Java/Software/jboss-3.0.1_tomcat-4.0.4/server/all/tmp/deploy/server/all/deploy/supplier.ear/102.supplier.ear-contents/supplierpo-ejb.jar
javax.management.InstanceAlreadyExistsException: jboss.j2ee:service=EJB,jndiName=ContactInfoEJB already registered.
at org.jboss.mx.server.registry.BasicMBeanRegistry.add(BasicMBeanRegistry.java:657)
at org.jboss.mx.server.registry.BasicMBeanRegistry.registerMBean(BasicMBeanRegistry.java:240)
at org.jboss.mx.server.MBeanServerImpl.registerMBean(MBeanServerImpl.java:949)
(12)
...
2002-08-21 14:48:06,235 DEBUG [org.jboss.ejb.StatelessSessionContainer] Binding an EJBLocalReference ejb/local/Address
2002-08-21 14:48:06,235 DEBUG [org.jboss.ejb.StatelessSessionContainer] Binding ejb/local/Address to bean source: AddressEJB
2002-08-21 14:48:06,235 WARN [org.jboss.system.ServiceController] Problem starting service jboss.j2ee:service=EJB,jndiName=OrderFulfillmentFacadeEJB
org.jboss.deployment.DeploymentException: Bean AddressEJB not found within this application.
at org.jboss.ejb.Container.setupEnvironment(Container.java:946)
at org.jboss.ejb.Container.start(Container.java:565)
(13)
...
2002-08-21 14:48:06,675 DEBUG [org.jboss.web.catalina.EmbeddedCatalinaServiceSX] Binding 'url/EntityCatalogURL' to URL: null
2002-08-21 14:48:06,675 ERROR [org.jboss.deployment.scanner.URLDeploymentScanner] Failed to deploy: org.jboss.deployment.scanner.URLDeploymentScanner$DeployedURL@f9008198{ url=file:/C:/Java/Software/jboss-3.0.1_tomcat-4.0.4/server/all/deploy/supplier.ear, deployedLastModified=0 }
org.jboss.deployment.DeploymentException: Error during deploy; - nested throwable: (javax.naming.NamingException: Malformed URL:null)
at org.jboss.web.AbstractWebContainer.start(AbstractWebContainer.java:309)
at org.jboss.deployment.MainDeployer.start(MainDeployer.java:796)
at org.jboss.deployment.MainDeployer.start(MainDeployer.java:788)
(14)
...
2002-08-21 14:48:06,755 ERROR [org.jboss.deployment.scanner.URLDeploymentScanner] MBeanException: Exception in MBean operation 'checkIncompleteDeployments()'
Cause: Incomplete Deployment listing:
Packages waiting for a deployer:
Incompletely deployed packages:
[org.jboss.deployment.DeploymentInfo@ba4afdfc { url=file:/C:/Java/Software/jboss-3.0.1_tomcat-4.0.4/server/all/deploy/opc.ear }
deployer: org.jboss.deployment.EARDeployer@90c06f
status: Deployment FAILED reason: Error during deploy; - nested throwable: (javax.naming.NamingException: Malformed URL:null)
state: FAILED
watch: file:/C:/Java/Software/jboss-3.0.1_tomcat-4.0.4/server/all/deploy/opc.ear
lastDeployed: 1029937669810
lastModified: 1029937669189
mbeans:
, org.jboss.deployment.DeploymentInfo@b37a0fee { url=file:/C:/Java/Software/jboss-3.0.1_tomcat-4.0.4/server/all/deploy/petstore.ear }
deployer: org.jboss.deployment.EARDeployer@90c06f
status: Deployment FAILED reason: ejb-relation-name must be unique in ejb-jar.xml file: ejb-relation-name is
state: FAILED
watch: file:/C:/Java/Software/jboss-3.0.1_tomcat-4.0.4/server/all/deploy/petstore.ear
lastDeployed: 1029937680816
lastModified: 1029937679675
mbeans:
, org.jboss.deployment.DeploymentInfo@80b80e87 { url=file:/C:/Java/Software/jboss-3.0.1_tomcat-4.0.4/server/all/deploy/petstoreadmin.ear }
deployer: org.jboss.deployment.EARDeployer@90c06f
status: Deployment FAILED reason: Error during deploy; - nested throwable: (javax.naming.NamingException: ejb-ref: ejb/remote/OPCAdminFacade, no ejb-link match, use jndi-name in jboss-web.xml)
state: FAILED
watch: file:/C:/Java/Software/jboss-3.0.1_tomcat-4.0.4/server/all/deploy/petstoreadmin.ear
lastDeployed: 1029937683801
lastModified: 1029937683410
mbeans:
, org.jboss.deployment.DeploymentInfo@f9008198 { url=file:/C:/Java/Software/jboss-3.0.1_tomcat-4.0.4/server/all/deploy/supplier.ear }
deployer: org.jboss.deployment.EARDeployer@90c06f
status: Deployment FAILED reason: Error during deploy; - nested throwable: (javax.naming.NamingException: Malformed URL:null)
state: FAILED
watch: file:/C:/Java/Software/jboss-3.0.1_tomcat-4.0.4/server/all/deploy/supplier.ear
lastDeployed: 1029937684933
lastModified: 1029937684492
mbeans:
]MBeans waiting for classes:
MBeans waiting for other MBeans:
[ObjectName: jboss.j2ee:service=EJB,jndiName=CreditCardEJB
state: FAILED
I Depend On:
Depends On Me: org.jboss.deployment.DeploymentException: Atleast one role of a foreign-key mapped relationship must have key fields: ejb-relation-name=, ObjectName: jboss.j2ee:service=EJB,jndiName=PurchaseOrderEJB
state: FAILED
I Depend On:
Depends On Me: org.jboss.deployment.DeploymentException: Atleast one role of a foreign-key mapped relationship must have key fields: ejb-relation-name=, ObjectName: jboss.j2ee:service=EjbModule,url=file%/C%/Java/Software/jboss-3.0.1_tomcat-4.0.4/server/all/tmp/deploy/server/all/deploy/petstore.ear/100.petstore.ear-contents/petstore-ejb.jar
state: CREATED
I Depend On:
Depends On Me: , ObjectName: jboss.j2ee:service=EJB,jndiName=ShoppingControllerEJB
state: CREATED
I Depend On:
Depends On Me: , ObjectName: jboss.j2ee:service=EJB,jndiName=ShoppingClientFacadeEJB
state: CREATED
I Depend On:
Depends On Me: , ObjectName: jboss.j2ee:service=EjbModule,url=file%/C%/Java/Software/jboss-3.0.1_tomcat-4.0.4/server/all/tmp/deploy/server/all/deploy/petstore.ear/100.petstore.ear-contents/cart-ejb.jar
state: CREATED
I Depend On:
Depends On Me: , ObjectName: jboss.j2ee:service=EJB,jndiName=ShoppingCartEJB
state: CREATED
I Depend On:
Depends On Me: , ObjectName: jboss.j2ee:service=EjbModule,url=file%/C%/Java/Software/jboss-3.0.1_tomcat-4.0.4/server/all/tmp/deploy/server/all/deploy/petstore.ear/100.petstore.ear-contents/uidgen-ejb.jar
state: CREATED
I Depend On:
Depends On Me: , ObjectName: jboss.j2ee:service=EJB,jndiName=UniqueIdGeneratorEJB
state: CREATED
I Depend On:
Depends On Me: , ObjectName: jboss.j2ee:service=EJB,jndiName=CounterEJB
state: CREATED
I Depend On:
Depends On Me: , ObjectName: jboss.j2ee:service=EjbModule,url=file%/C%/Java/Software/jboss-3.0.1_tomcat-4.0.4/server/all/tmp/deploy/server/all/deploy/petstore.ear/100.petstore.ear-contents/catalog-ejb.jar
state: CREATED
I Depend On:
Depends On Me: , ObjectName: jboss.j2ee:service=EJB,jndiName=CatalogEJB
state: CREATED
I Depend On:
Depends On Me: , ObjectName: jboss.j2ee:service=EJB,jndiName=OrderFulfillmentFacadeEJB
state: FAILED
I Depend On:
Depends On Me: org.jboss.deployment.DeploymentException: Bean AddressEJB not found within this application., ObjectName: jboss.j2ee:service=EjbModule,url=file%/C%/Java/Software/jboss-3.0.1_tomcat-4.0.4/server/all/tmp/deploy/server/all/deploy/supplier.ear/102.supplier.ear-contents/supplierpo-ejb.jar
state: FAILED
I Depend On:
Depends On Me: javax.management.InstanceAlreadyExistsException: jboss.j2ee:service=EJB,jndiName=ContactInfoEJB already registered.]
...
Here are my questions :
(a). the point (1) is caused by jboss-service.xml, where the JNDI use port 1099. Why is this happned ?
(b). it seems for me that from point (2) to (6), the ejb-relation-name is mandatory. Is it true ?
(c). do I need cross-reference from sun-j2ee-ri.xml into jboss.xml ?
Any help at all ?
Thanks.