aries-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Charles Moulliard <cmoulli...@gmail.com>
Subject Re: javax.naming.NoInitialContextException: Need to specify class name in environment or system property, or as an applet parameter, or in an application resource file: java.naming.factory.initial
Date Tue, 16 Nov 2010 13:08:49 GMT
BTW, I have enable tracing mode for the class 
org.apache.aries.transaction but the trace does not report begin and 
commit or rollback

14:05:42,952 | DEBUG | tenerContainer-1 | 
TxComponentMetaDataHelperImpl    | on.TxComponentMetaDataHelperImpl  185 
| 271 - org.apache.aries.transaction.blueprint - 0.2.0.incubating | 
Getting the txAttribute for the component {0} and method {1}
14:05:42,952 | DEBUG | tenerContainer-1 | 
TxComponentMetaDataHelperImpl    | on.TxComponentMetaDataHelperImpl  197 
| 271 - org.apache.aries.transaction.blueprint - 0.2.0.incubating | 
Return the txAttribute {0} for the component and method
14:05:42,953 | DEBUG | tenerContainer-1 | 
TxInterceptorImpl                | es.transaction.TxInterceptorImpl  110 
| 271 - org.apache.aries.transaction.blueprint - 0.2.0.incubating | 
Method: public void 
org.apache.camel.example.reportincident.dao.impl.IncidentDAOImpl.saveIncident(org.apache.camel.example.reportincident.model.Incident),

has transaction strategy: REQUIRED
1

This should be nice to have this info because for the moment we have no 
idea if the transaction occurs or not.

On 16/11/10 13:44, Charles Moulliard wrote:
> You are right. I made a mistake in my code to simulate an error + 
> rollback
>
> On 16/11/10 12:21, Valentin Mahrwald wrote:
>> I am a bit confused by the scenario. If I understand this correctly 
>> the saveIncident method throws an exception and catches it inside the 
>> method itself. So the transaction that spans around the saveIncident 
>> method would be unaffected ?!
>>
>> What are you trying to simulate?
>>
>> Just looking over it there is not a lot of trace. However, 
>> org.apache.aries.transaction.TxInterceptorImpl logs (at debug) when 
>> transactions start and if they fail.
>>
>> On 16 Nov 2010, at 10:37, Charles Moulliard wrote:
>>
>>> That does not work. In fact I'm not even sure that a transaction has 
>>> been initiated
>>>
>>> I have made the following modification
>>>
>>> 1) DAO
>>>
>>> <bean id="incidentDAO"
>>>         
>>> class="org.apache.camel.example.reportincident.dao.impl.IncidentDAOImpl">
>>> <!--<tx:transaction method="*" value="Required" />  -->
>>> <jpa:context property="entityManager" unitname="ReportIncident" />
>>> </bean>
>>>
>>> 2) Service
>>>
>>> <bean id="incidentService" 
>>> class="org.apache.camel.example.reportincident.service.impl.IncidentServiceImpl">
>>>
>>> <tx:transaction method="*" value="Required" />
>>>
>>> <property name="incidentDAO">
>>> <reference 
>>> interface="org.apache.camel.example.reportincident.dao.IncidentDAO"/>
>>> </property>
>>>
>>> </bean>
>>>
>>> 3) Simulation of an error
>>>
>>> public class IncidentServiceImpl implements IncidentService {
>>>
>>>     private static final transient Log LOG = 
>>> LogFactory.getLog(IncidentServiceImpl.class);
>>>
>>>     /** The incident dao. */
>>>     private IncidentDAO incidentDAO;
>>>
>>>     public void saveIncident(Incident incident) {
>>>
>>>         try {
>>>             getIncidentDAO().saveIncident(incident);
>>>             throw new Exception(">>  Generate Error to simulate 
>>> RollBack");
>>>         } catch (RuntimeException e) {
>>>             e.printStackTrace();
>>>         }  catch (Exception ex) {
>>>             ex.printStackTrace();
>>>         }
>>>
>>>     }
>>>
>>> Is there a way to trace in log the Aries Transaction ?
>>>
>>> Regards,
>>>
>>> Charles
>>>
>>> On 16/11/10 10:49, Valentin Mahrwald wrote:
>>>> On 16 Nov 2010, at 09:42, Charles Moulliard wrote:
>>>>
>>>>> There was a conflict with another ServiceMix bundle providing too 
>>>>> jndi context. I have remove it and restart my project. Everything 
>>>>> works fine.
>>>>>
>>>>> This is easier to configure compare to Spring + Hibernate stuffs 
>>>>> on OSGI. I will produce a tutorial with camel + aries + jpa + 
>>>>> transaction + wicket about that and show How Aries JPA/Transaction 
>>>>> simplifies our lives on OSGI platform.
>>>>>
>>>>> Question : In all the examples (Blog, AriesTrader), the 
>>>>> transaction is defined in the DAO layer (= layer containing the 
>>>>> entityManager). Could it be possible that I define the tx within 
>>>>> the Service layer (in charge to call the DAO) ?
>>>> Yes, for all I know that should work. The JPA and Transaction 
>>>> extensions are entirely independent. The transaction extensions 
>>>> manages the transaction bound to the current thread while the JPA 
>>>> extension manages EntityManagers (and -Factories) that access
>>>> the transaction currently active on the thread.
>>>>
>>>>> Regards,
>>>>>
>>>>> Charles
>>>>>
>>>>> On 16/11/10 10:26, Alasdair Nottingham wrote:
>>>>>> That is very odd. Something has not worked because the stack 
>>>>>> trace shows the InitialContextFactoryBuilder has not been 
>>>>>> registered.
>>>>>>
>>>>>> Could there be a timing issue? Perhaps the jndi bundle starts 
>>>>>> after your test. Certainly the jndi bundle has the highest id.
>>>>>>
>>>>>> Alasdair Nottingham
>>>>>>
>>>>>> On 16 Nov 2010, at 09:11, Charles 
>>>>>> Moulliard<cmoulliard@gmail.com>    wrote:
>>>>>>
>>>>>>> Yes. The Aries JNDI bundle is started
>>>>>>>
>>>>>>> [ 178] [Active     ] [            ] [       ] [   60] Apache

>>>>>>> Aries JNDI Bundle (0.2.0.incubating)
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>> On 16/11/10 09:52, Alasdair Nottingham wrote:
>>>>>>>> Hi,
>>>>>>>>
>>>>>>>> Have you deployed and started the jndi bundle?
>>>>>>>>
>>>>>>>> Alasdair
>>>>>>>>
>>>>>>>> On 16 Nov 2010, at 08:18, Charles 
>>>>>>>> Moulliard<cmoulliard@gmail.com>     wrote:
>>>>>>>>
>>>>>>>>> Hi,
>>>>>>>>>
>>>>>>>>> Based on the Blog example of Aries, I have created a
small 
>>>>>>>>> project that I deploy on Fuse ESB (=Apache ServiceMix
4). The 
>>>>>>>>> project includes a DAO layer (=JPA), Service layer, Camel

>>>>>>>>> route (where a bean calls my service layer).
>>>>>>>>>
>>>>>>>>> The following error is reported :
>>>>>>>>>
>>>>>>>>> Caused by: java.lang.RuntimeException: The DataSource

>>>>>>>>> osgi:service/javax.sql.DataSource/(osgi.jndi.service.name=jdbc/reportincidentdb)

>>>>>>>>> could not be used.
>>>>>>>>>     at 
>>>>>>>>> org.apache.aries.jpa.container.unit.impl.DelayedLookupDataSource.getDs(DelayedLookupDataSource.java:47)
>>>>>>>>>     at 
>>>>>>>>> org.apache.aries.jpa.container.unit.impl.DelayedLookupDataSource.getConnection(DelayedLookupDataSource.java:60)
>>>>>>>>>     at 
>>>>>>>>> org.apache.openjpa.lib.jdbc.DelegatingDataSource.getConnection(DelegatingDataSource.java:137)
>>>>>>>>>     at 
>>>>>>>>> org.apache.openjpa.lib.jdbc.DecoratingDataSource.getConnection(DecoratingDataSource.java:112)
>>>>>>>>>     at 
>>>>>>>>> org.apache.openjpa.jdbc.schema.DataSourceFactory.installDBDictionary(DataSourceFactory.java:239)
>>>>>>>>>     ... 100 more
>>>>>>>>> Caused by: javax.naming.NoInitialContextException: Need
to 
>>>>>>>>> specify class name in environment or system property,
or as an 
>>>>>>>>> applet parameter, or in an application resource file:
 
>>>>>>>>> java.naming.factory.initial
>>>>>>>>>     at 
>>>>>>>>> javax.naming.spi.NamingManager.getInitialContext(NamingManager.java:645)

>>>>>>>>>
>>>>>>>>>     at 
>>>>>>>>> javax.naming.InitialContext.getDefaultInitCtx(InitialContext.java:288)[:1.6.0_22]
>>>>>>>>>     at 
>>>>>>>>> javax.naming.InitialContext.getURLOrDefaultInitCtx(InitialContext.java:325)[:1.6.0_22]
>>>>>>>>>     at 
>>>>>>>>> javax.naming.InitialContext.lookup(InitialContext.java:392)[:1.6.0_22]

>>>>>>>>>
>>>>>>>>>     at 
>>>>>>>>> org.apache.aries.jpa.container.unit.impl.DelayedLookupDataSource.getDs(DelayedLookupDataSource.java:43)
>>>>>>>>>
>>>>>>>>> Here is the bundle that I deploy to use Aries
>>>>>>>>>
>>>>>>>>> [   7] [Active     ] [Created     ] [       ] [   20]
Apache 
>>>>>>>>> Aries Blueprint Bundle (0.2.0.incubating)
>>>>>>>>> [  49] [Active     ] [            ] [       ] [   60]
Apache 
>>>>>>>>> Aries Transaction Manager (0.2.0.incubating)
>>>>>>>>> [ 167] [Active     ] [Created     ] [       ] [   60]
Aries 
>>>>>>>>> JPA Container blueprint integration for Aries blueprint

>>>>>>>>> (0.2.0.incubating)
>>>>>>>>> [ 170] [Active     ] [Created     ] [       ] [   60]
Apache 
>>>>>>>>> Aries Transaction Blueprint (0.2.0.incubating)
>>>>>>>>> [ 171] [Active     ] [            ] [       ] [   60]
Aries 
>>>>>>>>> JPA Container (0.2.0.incubating)
>>>>>>>>> [ 172] [Active     ] [            ] [       ] [   60]
Apache 
>>>>>>>>> Aries Util (0.2.0.incubating)
>>>>>>>>> [ 175] [Active     ] [            ] [       ] [   60]
Aries 
>>>>>>>>> JPA Container Managed Contexts (0.2.0.incubating)
>>>>>>>>> [ 178] [Active     ] [            ] [       ] [   60]
Apache 
>>>>>>>>> Aries JNDI Bundle (0.2.0.incubating)
>>>>>>>>>
>>>>>>>>> [ 166] [Active     ] [Created     ] [       ] [   60]

>>>>>>>>> Reportincident :: Persistence JPA :: Aries (1.0.0.SNAPSHOT)
>>>>>>>>> [ 176] [Active     ] [Created     ] [       ] [   60]

>>>>>>>>> Reportincident :: Service Bundle :: Aries (1.0.0.SNAPSHOT)
>>>>>>>>>
>>>>>>>>> What is the reason ? Is there a bundle that I miss to
deploy ?
>>>>>>>>>
>>>>>>>>> Regards,
>>>>>>>>>
>>>>>>>>> Charles M.
>>>>>>>>> Apache Committer (Camel, Servicmix and Karaf)

Mime
View raw message