You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@servicemix.apache.org by "Davy Toch (JIRA)" <ji...@apache.org> on 2013/02/25 11:52:12 UTC

[jira] [Created] (SMX4-1386) OSGI component isolation problem resulting in "Cannot convert value of type" in JPA persistence layer

Davy Toch created SMX4-1386:
-------------------------------

             Summary: OSGI component isolation problem resulting in "Cannot convert value of type" in JPA persistence layer
                 Key: SMX4-1386
                 URL: https://issues.apache.org/jira/browse/SMX4-1386
             Project: ServiceMix 4
          Issue Type: Bug
    Affects Versions: 4.5.0, 4.4.2
         Environment: Windows Vista 64 bit
JDK 1.6.0_25
            Reporter: Davy Toch


We're trying to make a proof of concept with a webservice 'personservice' that has CUD operations to manipulate person data that are persisted in a database using OpenJPA. The purpose of the POC is actually to simulate different nodes of 'personservice' each having their own database and to test data replication between these different nodes with regards to performance, stability. In order to simulate multiple nodes of this service, we implemented it as an OSGI component deployable in servicemix, but with each deployable component having in its configuration a distinct context root, schema URL, ... . We wanted it this way in order to be able to deploy these instances in the same servicemix JVM which facilitates configuration for the POC (a more realistic situation is to have multiple JVMs but for the moment we don't want to do that because then it's a hassle trying to get the ports configurated without conflicts, like http port, ActiveMQ broker port, ...).

Now our problem : deployment of the first node '0' of the service works, but when trying to deploy the second node '1', we get a class conflict on the DAO persistence layer that I didn't expect since OSGI deployments are supposed to be completely isolated from each other:

    Caused by: org.springframework.beans.ConversionNotSupportedException: 
       Failed to convert property value of type 'be.steria.esbpoc.personservice.dao.PersonDaoImpl' 
         to required type 'be.steria.esbpoc.personservice.dao.PersonDao' for property 'personDao'; 
           nested exception is java.lang.IllegalStateException: Cannot convert value of type [be.steria.esbpoc.personservice.dao.PersonDaoImpl] 
           to required type [be.steria.esbpoc.personservice.dao.PersonDao] for property 'personDao': no matching editors or conversion strategy found
            ...
       Caused by: java.lang.IllegalStateException: Cannot convert value of type [be.steria.esbpoc.personservice.dao.PersonDaoImpl]
         to required type [be.steria.esbpoc.personservice.dao.PersonDao] for property 'personDao': no matching editors or conversion strategy found
         ...

The deployment was done in the servicemix console using the following commands:

    features:addUrl mvn:be.steria.esbpoc/be.steria.esbpoc.personservice.0/1.0-SNAPSHOT/xml/features
    features:install be.steria.esbpoc.personservice.0

    features:addUrl mvn:be.steria.esbpoc/be.steria.esbpoc.personservice.1/1.0-SNAPSHOT/xml/features
    features:install be.steria.esbpoc.personservice.1

Included the log file (servicemix.log), the 2 jars of the personservice nodes '0' and '1' and the related features configurations for these 2 deployments.

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira