[Tomcat, HTTPD, Servlets & JSP] - @Resource dependency injection for Servlets - is implemented
by Mikha
Hi!
I'm having troubles trying to make @Resource dependency injection work for servlets. Here it is:
Servlet class, UserServlet.java:
=====================
/** data source to use */
@Resource(name="jdbc/TimeTrackerDS")
private DataSource myDs;
=====================
web.xml:
======
<?xml version="1.0" encoding="UTF-8"?>
<web-app version="2.5" 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">
This servlet handler all non-admin UI
<servlet-name>UserServlet</servlet-name>
<servlet-class>
com.vatamani.timetracker.webui.UserServlet
</servlet-class>
<init-param>
<param-name>debug</param-name>
<param-value>true</param-value>
</init-param>
<servlet-mapping>
<servlet-name>UserServlet</servlet-name>
<url-pattern>/user/*</url-pattern>
</servlet-mapping>
<welcome-file-list>
<welcome-file>index.jsp</welcome-file>
</welcome-file-list>
<jsp-config>
<jsp-property-group>
All JSP pages
<url-pattern>/p/*</url-pattern>
<include-prelude>/p/header.jspf</include-prelude>
<include-coda>/p/footer.jspf</include-coda>
</jsp-property-group>
</jsp-config>
<context-param>
<param-name>
javax.servlet.jsp.jstl.fmt.localizationContext
</param-name>
<param-value>
com.vatamani.timetracker.webui.messages
</param-value>
</context-param>
</web-app>
======
jboss-web.xml:
==========
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE jboss-web PUBLIC
"-//JBoss//DTD Web Application 4.2//EN"
"http://www.jboss.org/j2ee/dtd/jboss-web_4_2.dtd">
<jboss-web>
<resource-ref>
<res-ref-name>jdbc/TimeTrackerDS</res-ref-name>
<jndi-name>TimeTrackerDS</jndi-name>
</resource-ref>
</jboss-web>
==========
And during deployment, I got following exception, as if @Resource doesn't exist at all:
=========
org.jboss.deployment.DeploymentException: resource-ref jdbc/TimeTrackerDS found in jboss-web.xml but not in web.xml
at org.jboss.metadata.WebMetaData.importJBossWebXml(WebMetaData.java:1030)
at org.jboss.metadata.WebMetaData.importXml(WebMetaData.java:770)
at org.jboss.web.AbstractWebContainer.parseMetaData(AbstractWebContainer.java:763)
... 87 more
When I tried to find out some JBoss - specific examples or documentation on using @Resource in servlets, I couldn't find any mention of it whatsoever. Is it implemented in 4.2.1 at all?
Any suggestions are welcome!
____________
WBW&R, Mikha
View the original post : http://www.jboss.com/index.html?module=bb&op=viewtopic&p=4103885#4103885
Reply to the post : http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&p=4103885
18 years, 8 months
[JBoss/Spring Integration] - Transaction Synchronization Issue
by Jansie
S/W used
Jboss: 4.2.1
DB: SQL Server 2005
Spring : 2.0.2
Hibernate : 3.2.1
In our scenario we are having
1)Bean A and Bean B
2)Bean A invokes a method on Bean B whose transaction attribute is Requires_New
3) In the invoked method of Bean B datasource lookup is done to get a new connection
4) As soon as Bean A invokes the method on Bean B the below exception is thrown.
[JtaTransactionManager] Suspending current transaction, creating new transaction with name [com.priya...sequence.interfaces.ICustomMySequenceOrganizer.getSequenceNextVal]
[org.springframework.transaction.support.TransactionSynchronizationManager] Removed value [org.springframework.orm.hibernate3.SessionHolder@1d16efc] for key [org.hibernate.impl.SessionFactoryImpl@895684] from thread [http-localhost%2F10.3.89.177-8080-1]
[org.springframework.transaction.support.TransactionSynchronizationManager] Clearing transaction synchronization
[STDERR] java.lang.IllegalStateException: Trying to change transaction TransactionImple < ac, BasicAction: a0359b1:4e3:4734f5c7:fc status: ActionStatus.RUNNING > in enlist!
[STDERR] at org.jboss.resource.connectionmanager.TxConnectionManager$TxConnectionEventListener.enlist(TxConnectionManager.java:525)
[STDERR] at org.jboss.resource.connectionmanager.TxConnectionManager.transactionStarted(TxConnectionManager.java:328)
[STDERR] at org.jboss.resource.connectionmanager.CachedConnectionManager.userTransactionStarted(CachedConnectionManager.java:360)
[STDERR] at org.jboss.tm.usertx.client.ServerVMClientUserTransaction.begin(ServerVMClientUserTransaction.java:127)
[STDERR] at org.springframework.transaction.jta.JtaTransactionManager.doJtaBegin(JtaTransactionManager.java:724)
[STDERR] at org.springframework.transaction.jta.JtaTransactionManager.doBegin(JtaTransactionManager.java:681)
[STDERR] at org.springframework.transaction.support.AbstractPlatformTransactionManager.handleExistingTransaction(AbstractPlatformTransactionManager.java:396)
[STDERR] at org.springframework.transaction.support.AbstractPlatformTransactionManager.getTransaction(AbstractPlatformTransactionManager.java:329)
[STDERR] at org.springframework.transaction.interceptor.TransactionAspectSupport.createTransactionIfNecessary(TransactionAspectSupport.java:262)
[STDERR] at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:101)
[STDERR] at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:171)
[STDERR] at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:204)
[STDERR] at $Proxy89.getSequenceNextVal(Unknown Source)
[ Show û ] Muthukumaran Madialagan - 12/Nov/07 02:43 PM In our scenario we are having 1)Bean A and Bean B 2)The transaction attribute of Bean A is requires and the Transaction Attribute of Bean B is Requires New. 3) Bean A calls Bean B by passing the datasource as an input parameter. 4)When Bean A calls Bean B the current transaction of Bean A is suspended and new transaction is created. Then TransactionSyncronizationManager clears the transaction synchronization. While trying to initialise a new transaction the below exception is thrown. [JtaTransactionManager] Suspending current transaction, creating new transaction with name [com.priya...sequence.interfaces.ICustomMySequenceOrganizer.getSequenceNextVal] [org.springframework.transaction.support.TransactionSynchronizationManager] Removed value [org.springframework.orm.hibernate3.SessionHolder@1d16efc] for key [org.hibernate.impl.SessionFactoryImpl@895684] from thread [http-localhost%2F10.3.89.177-8080-1] [org.springframework.transaction.support.TransactionSynchronizationManager] Clearing transaction synchronization [STDERR] java.lang.IllegalStateException: Trying to change transaction TransactionImple < ac, BasicAction: a0359b1:4e3:4734f5c7:fc status: ActionStatus.RUNNING > in enlist! [STDERR] at org.jboss.resource.connectionmanager.TxConnectionManager$TxConnectionEventListener.enlist(TxConnectionManager.java:525) [STDERR] at org.jboss.resource.connectionmanager.TxConnectionManager.transactionStarted(TxConnectionManager.java:328) [STDERR] at org.jboss.resource.connectionmanager.CachedConnectionManager.userTransactionStarted(CachedConnectionManager.java:360) [STDERR] at org.jboss.tm.usertx.client.ServerVMClientUserTransaction.begin(ServerVMClientUserTransaction.java:127) [STDERR] at org.springframework.transaction.jta.JtaTransactionManager.doJtaBegin(JtaTransactionManager.java:724) [STDERR] at org.springframework.transaction.jta.JtaTransactionManager.doBegin(JtaTransactionManager.java:681) [STDERR] at org.springframework.transaction.support.AbstractPlatformTransactionManager.handleExistingTransaction(AbstractPlatformTransactionManager.java:396) [STDERR] at org.springframework.transaction.support.AbstractPlatformTransactionManager.getTransaction(AbstractPlatformTransactionManager.java:329) [STDERR] at org.springframework.transaction.interceptor.TransactionAspectSupport.createTransactionIfNecessary(TransactionAspectSupport.java:262) [STDERR] at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:101) [STDERR] at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:171) [STDERR] at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:204) [STDERR] at $Proxy89.getSequenceNextVal(Unknown Source)
View the original post : http://www.jboss.com/index.html?module=bb&op=viewtopic&p=4103882#4103882
Reply to the post : http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&p=4103882
18 years, 8 months