Let me reiterate because it is still an issue:
Everything till now works fine, iBatis / JBoss / Struts - DataSource
This is a struts app where I am doing an asynch JavaScript call to a
Servlet where I do some work. Consume a WebService and Delete a database
record.
I get the NPE.....
Caused by: java.lang.NullPointerException
at
com.ibatis.dao.engine.impl.StandardDaoManager.getTransaction(StandardDaoManager.java:108)
at
com.ibatis.dao.client.template.SqlMapDaoTemplate.getSqlMapExecutor(SqlMapDaoTemplate.java:60)
at
com.ibatis.dao.client.template.SqlMapDaoTemplate.delete(SqlMapDaoTemplate.java:142)
at
gov.gsa.base.dao.SqlMapDaoTemplateWrapper.delete(SqlMapDaoTemplateWrapper.java:41)
... 25 more
gov.gsa.base.exception.DAOException : java.lang.NullPointerException
- I have a theory that iBatis cant load the SQLMap because it is a
different ServletContext than struts... I can neither support or disprve
this claim...Help? Ideas?
TIA
Well, bcak to it:
<CODE>
//TEST
DataSource dataSource = null;
try{
Context initContext = new InitialContext();
dataSource = (DataSource)
initContext.lookup("java:REALNAME");
} catch (NamingException ne){
ne.printStackTrace();
System.out.println(" NamingException: " +
ne.getMessage());
}
System.out.println(" dataSource: " + dataSource);
</CODE>
This test returns : 2007-08-21 15:08:25,852 INFO [STDOUT] dataSource:
[EMAIL PROTECTED]
So I got that goin' for me.....
Still get the NPE.....
Caused by: java.lang.NullPointerException
2007-08-21 15:08:26,733 INFO [STDOUT] at
com.ibatis.dao.engine.impl.StandardDaoManager.getTransaction(StandardDao
Manager.java:108)
2007-08-21 15:08:26,733 INFO [STDOUT] at
com.ibatis.dao.client.template.SqlMapDaoTemplate.getSqlMapExecutor(SqlMa
pDaoTemplate.java:60)
2007-08-21 15:08:26,733 INFO [STDOUT] at
com.ibatis.dao.client.template.SqlMapDaoTemplate.delete(SqlMapDaoTemplat
e.java:142)
2007-08-21 15:08:26,733 INFO [STDOUT] at
gov.gsa.base.dao.SqlMapDaoTemplateWrapper.delete(SqlMapDaoTemplateWrappe
r.java:41)
2007-08-21 15:08:26,733 INFO [STDOUT] ... 25 more
2007-08-21 15:08:26,733 INFO [STDOUT]
gov.gsa.base.exception.DAOException : java.lang.NullPointerException
2007-08-21 15:08:26,733 INFO [STDOUT] RemoveAttachmentServlet
returning.
Ack, I hate NPEs, they're so embarrassing. iBATIS should never throw
one.
Once we find out why it does in this case, we'll fix it.
The most likely source is this: "java:DATASOURCE"
Make sure this works in your environment:
DataSource dataSource = (DataSource)
initCtx.lookup("java:DATASOURCE");
Clinton
-----Original Message-----
From: Christopher Lamey [mailto:[EMAIL PROTECTED]
Sent: August-16-07 8:43 AM
To: [email protected]
Subject: Re: TransactionManager thorowing NPE
Well, that looks ok.
Could the transaction be closed or committed early, before the delete?
On 8/16/07 6:12 AM, "[EMAIL PROTECTED]" <[EMAIL PROTECTED]>
wrote:
> Pretty straight forward....I assume we are using some default
Transaction
> Manager..
>
> <?xml version="1.0" encoding="UTF-8" ?>
> <!DOCTYPE sqlMapConfig PUBLIC "-//ibatis.apache.org//DTD SQL Map
Config
> 2.0//EN" "http://ibatis.apache.org/dtd/sql-map-config-2.dtd">
> <sqlMapConfig>
> <settings useStatementNamespaces="false" />
>
> <!-- JNDI Example -->
> <transactionManager type="JDBC">
> <dataSource type="JNDI">
> <property name="DBJndiContext" value=
> "java:DATASOURCE"/>
> </dataSource>
> </transactionManager>
>
> <sqlMap resource="dao/File1.xml" />
> <sqlMap resource="dao/File2.xml" />
> <sqlMap resource="dao/File3.xml" />
> </sqlMapConfig>
>
>
>
> Thank you,
> Christopher
>
>
>
>
> What does your transaction configuration look like? What transaction
> manager are you using?
>
>
> On 8/15/07 3:28 PM, "[EMAIL PROTECTED]" <[EMAIL PROTECTED]>
> wrote:
>
>>
>> I am accessing a servlet ( within same app context) with an asynch
call
> from a
>> struts app. Part of the work is a database call (delete) usig iBatis
> SQLMap.
>>
>> We have no issues with iBatis prior, (except performance, but thats a
>> different thread :>) )
>>
>> Seems like a Transaction issue? Any ideas?
>>
>> gov.gsa.base.exception.DAOException: java.lang.NullPointerException
>> at gov.gsa.base.dao.SqlMapDaoTemplateWrapper.delete(Unknown Source)
>> at
>>
>
gov.gsa.base.service.file.SQLMapAttachmentDAOImpl.deleteSRCVisitAttachme
nt(U
nk
>> nown Source)
>> at
>
gov.gsa.base.service.file.AttachmentService.deleteSRCAttachment(Unknown
>> Source)
>> at gov.gsa.base.servlet.RemoveAttachment.doGet(Unknown Source)
>> at javax.servlet.http.HttpServlet.service(HttpServlet.java:697)
>> at javax.servlet.http.HttpServlet.service(HttpServlet.java:810)
>> at
>>
>
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(Applica
tion
Fi
>> lterChain.java:252)
>> at
>>
>
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilt
erCh
ai
>> n.java:173)
>> at
>>
>
org.jboss.web.tomcat.filters.ReplyHeaderFilter.doFilter(ReplyHeaderFilte
r.ja
va
>> :81)
>> at
>>
>
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(Applica
tion
Fi
>> lterChain.java:202)
>> at
>>
>
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilt
erCh
ai
>> n.java:173)
>> at
>>
>
org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValv
e.ja
va
>> :213)
>> at
>>
>
org.apache.catalina.core.StandardContextValve.invoke(StandardContextValv
e.ja
va
>> :178)
>> at
>>
>
org.jboss.web.tomcat.security.CustomPrincipalValve.invoke(CustomPrincipa
lVal
ve
>> .java:39)
>> at
>>
>
org.jboss.web.tomcat.security.SecurityAssociationValve.invoke(SecurityAs
soci
at
>> ionValve.java:159)
>> at
>>
>
org.apache.catalina.authenticator.AuthenticatorBase.invoke(Authenticator
Base
.j
>> ava:407)
>> at
>>
>
org.jboss.web.tomcat.security.JaccContextValve.invoke(JaccContextValve.j
ava:
59
>> )
>> at
>>
>
org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java
:126
)
>> at
>>
>
org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java
:105
)
>> at
>>
>
org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.
java
:1
>> 07)
>> at
>
org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:1
48)
>> at
>
org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:85
6)
>> at
>>
>
org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.processC
onne
ct
>> ion(Http11Protocol.java:744)
>> at
>>
>
org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint
.jav
a:
>> 527)
>> at
>>
>
org.apache.tomcat.util.net.MasterSlaveWorkerThread.run(MasterSlaveWorker
Thre
ad
>> .java:112)
>> at java.lang.Thread.run(Thread.java:595)
>> Caused by: java.lang.NullPointerException
>> at
>>
>
com.ibatis.dao.engine.impl.StandardDaoManager.getTransaction(StandardDao
Mana
ge
>> r.java:108)
>> at
>>
>
com.ibatis.dao.client.template.SqlMapDaoTemplate.getSqlMapExecutor(SqlMa
pDao
Te
>> mplate.java:60)
>> at
>>
>
com.ibatis.dao.client.template.SqlMapDaoTemplate.delete(SqlMapDaoTemplat
e.ja
va
>> :142)
>> ... 26 more
>> gov.gsa.base.exception.DAOException : java.lang.NullPointerException
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>> Thank you,
>> Christopher
>>
>> ~~~~~~~~~~~~~~~~~
>> Christopher McCauley
>> Unisys Consultant
>> GSA - Federal Acquisition Service
>> CP3 11028B
>> (703) 605 9160
>> [EMAIL PROTECTED]
>> [EMAIL PROTECTED]
>
>
>
>