[jboss-user] [EJB 3.0] - Re: Help need to solve the jms not bound error
PeterJ
do-not-reply at jboss.com
Fri Nov 7 17:01:05 EST 2008
I got it working. Here is what I did. First, I made several changes to the source code:
NewMessageBean.java:
// DIFF: removed mappedName
| //DIFF: added destination
| @MessageDriven(activationConfig = {
| @ActivationConfigProperty(propertyName = "acknowledgeMode", propertyValue = "Auto-acknowledge"),
| @ActivationConfigProperty(propertyName = "destinationType", propertyValue = "javax.jms.Queue"),
| @ActivationConfigProperty(propertyName = "destination", propertyValue = "queue/NewMessage")
| })
| ...
| // DIFF: added unitName
| @PersistenceContext(unitName = "newsPU")
| private EntityManager em;
| ...
NewsEntityFacade.java:
// DIFF: added unitName
| @PersistenceContext(unitName = "newsPU")
| private EntityManager em;
ListNews.java:
//DIFF: added mappedName
| @EJB(mappedName = "NewsEntityFacade/local")
| private NewsEntityFacadeLocal newsEntityFacade;
PostMessage.java:
//DIFF: changed mappedName
| @Resource(mappedName = "ConnectionFactory")
| private ConnectionFactory connectionFactory;
|
| //DIFF: changed mappedName
| @Resource(mappedName = "queue/NewMessage")
| private Queue queue;
I deployed four files:
news.jar
news.war
news-destinations-service.xml
news-postgresql-ds.xml
The contents of news.jar:
META-INF/persistence.xml
ejb/NewMessageBean.class
ejb/NewsEntity.class
ejb/NewsEntityFacade.class
ejb/NewsEntityFacadeLocal.class
The contents of news.war:
WEB-INF/web.xml
WEB-INF/classes/web/ListNews.class
WEB-INF/classes/web/PostMessage.class
I listed the contents of news-destinations-service.xml previously.
The contents of news-postgresql-ds.xml:
<datasources>
| <local-tx-datasource>
| <jndi-name>jdbc/newsDS</jndi-name>
| <connection-url>jdbc:postgresql:newsdb</connection-url>
| <driver-class>org.postgresql.Driver</driver-class>
| <user-name>xxx</user-name>
| <password>xxx</password>
| </local-tx-datasource>
| </datasources>
The contents of news.jar/META-INF/persistence.xml:
<?xml version="1.0" encoding="UTF-8"?>
| <persistence xmlns="http://java.sun.com/xml/ns/persistence"
| xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
| xsi:schemaLocation="http://java.sun.com/xml/ns/persistence http://java.sun.com/xml/ns/persistence/persistence_1_0.xsd"
| version="1.0">
| <persistence-unit name="newsPU">
| <provider>org.hibernate.ejb.HibernatePersistence</provider>
| <jta-data-source>java:/jdbc/newsDS</jta-data-source>
| <properties>
| <property name="hibernate.hbm2ddl.auto" value="update"/>
| <property name="hibernate.dialect" value="org.hibernate.dialect.PostgreSQLDialect"/>
| <property name="hibernate.show_sql" value="true"/>
| <!-- These are the default for JBoss EJB3, but not for HEM: -->
| <property name="hibernate.cache.provider_class" value="org.hibernate.cache.HashtableCacheProvider"/>
| <property name="hibernate.transaction.manager_lookup_class" value="org.hibernate.transaction.JBossTransactionManagerLookup"/>
| <property name="jboss.entity.manager.factory.jndi.name" value="java:/newsEntityManagerFactory"/>
| </properties>
| </persistence-unit>
| </persistence>
The contents of news.war/WEB-INF/web.xml:
<web-app xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
| xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
| version="2.5"
| >
| <servlet>
| <servlet-name>ListServlet</servlet-name>
| <servlet-class>org.jbia.jms.news.web.ListNews</servlet-class>
| </servlet>
| <servlet-mapping>
| <servlet-name>ListServlet</servlet-name>
| <url-pattern>/ListNews</url-pattern>
| </servlet-mapping>
|
| <servlet>
| <servlet-name>NewServlet</servlet-name>
| <servlet-class>org.jbia.jms.news.web.PostMessage</servlet-class>
| </servlet>
| <servlet-mapping>
| <servlet-name>NewServlet</servlet-name>
| <url-pattern>/PostMessage</url-pattern>
| </servlet-mapping>
| </web-app>
That is it. Aimed Firefox at http://localhost:8080/news/PostMessage. filled in the form, the list page displayed with the news item.
I have no idea how to get NetBeans to do this. I could not even tell you how to get Eclipse to do this - I did edited all of these files in Eclipse but I did not use any wizards or 'magic' to accomplish it. In addition, I used Ant to build and deploy the various files (I reused/modified an existing build script that I used for some other MDBs).
View the original post : http://www.jboss.com/index.html?module=bb&op=viewtopic&p=4187838#4187838
Reply to the post : http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&p=4187838
More information about the jboss-user
mailing list