You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@servicemix.apache.org by Berndt Sevcik <se...@ict.tuwien.ac.at> on 2008/12/03 17:19:20 UTC

AW: AW: Advanced JDBC by Spargic

With your help the setup is now working without query Parameters. When I add the following lines to servicemix.xml with XPath:

<property name="query" value="SELECT * FROM user WHERE SecondName like $name" />
...
                 <property name="queryParams">
                    <list>
                      <bean class="org.spagic.smx.components.jdbcquery.QueryParameterConfig" >
                        <property name="placeHolder" value="name" />
                        <property name="outputParam" value="TRUE" />
                        <property name="xpath" value="/queryConfig/name" />
                        <property name="paramType" value="java.lang.String" />
                      </bean>
                    </list>
                  </property>

 I get always the following exception:

17:06:32,515 | WARN  | pool-flow.seda.myJdbcQueryadvJdbcDatasource2-thread-2 | FileComponent            | icemix.file.FilePollerEndpoint  389 | Message in file C:\Projects\SimpleJDBC\poller\input.xml could not be handled successfully: java.io.IOException: Stream closed
javax.xml.transform.TransformerException: java.io.IOException: Stream closed
        at org.apache.xalan.transformer.TransformerIdentityImpl.transform(TransformerIdentityImpl.java:505)
        at org.apache.servicemix.jbi.jaxp.SourceTransformer.toResult(SourceTransformer.java:125)
        at org.apache.servicemix.jbi.jaxp.SourceTransformer.toResult(SourceTransformer.java:103)
        at org.apache.servicemix.jbi.jaxp.SourceTransformer.toString(SourceTransformer.java:140)
        at org.apache.servicemix.jbi.jaxp.SourceTransformer.contentToString(SourceTransformer.java:161)
        at org.spagic.smx.components.jdbcquery.JDBCAdvancedQueryComponent.transform(JDBCAdvancedQueryComponent.java:147)
        at org.apache.servicemix.components.util.TransformComponentSupport.onMessageExchange(TransformComponentSupport.java:71)
        at org.apache.servicemix.jbi.messaging.DeliveryChannelImpl.processInBound(DeliveryChannelImpl.java:620)
        at org.apache.servicemix.jbi.nmr.flow.AbstractFlow.doRouting(AbstractFlow.java:172)
        at org.apache.servicemix.jbi.nmr.flow.seda.SedaFlow.doRouting(SedaFlow.java:168)
        at org.apache.servicemix.jbi.nmr.flow.seda.SedaQueue$1.run(SedaQueue.java:134)
        at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:650)
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:675)
        at java.lang.Thread.run(Thread.java:595)

My input file looks like this:
<?xml version="1.0" encoding="UTF-8"?>
<queryConfig>
<name>Sevcik</name>
</queryConfig>

Is there an error in my XPath? Any other idea? Thanks in advance.

Berndt
--
Dipl.-Ing. Berndt Sevcik
TU Wien
Institut für Computertechnik
Gußhausstraße 27-29/384 - 1040 Wien
Tel.: +43 1 58801 38436
Mail: sevcik@ict.tuwien.ac.at
URL: http://www.ict.tuwien.ac.at



-----Ursprüngliche Nachricht-----
Von: subh [mailto:subendu@aol.com]
Gesendet: Mittwoch, 26. November 2008 16:21
An: users@servicemix.apache.org
Betreff: Re: AW: Advanced JDBC by Spargic


Here you go..

Servicemix.xml
++++++++++++

<bean id="athenaPricingDS"
class="org.springframework.jndi.JndiObjectFactoryBean">
<property name="jndiName" value="java:comp/env/jdbc/athenaPricingDB"/>
</bean>

<sm:activationSpec componentName="jdbcPricingService"
service="athena:jdbcPricingService" destinationService="athena:echoService">
<sm:component>
<bean
class="org.spagic.smx.components.jdbcstore.JDBCStoreProcedureComponent">
<property name="connConfig">
<bean class="org.spagic.smx.components.jdbcquery.JDBCConnectionConfig">
<property name="datasource" ref="athenaPricingDS"/>
</bean>
</property>
<property name="queryConfig">
<bean class="org.spagic.smx.components.jdbcquery.JDBCQueryConfig">
<property name="query" value="{call
COMMON_PRICE_DATA.processPrices($priceFeedCode, $priceFeedOption,
$processStart)}" />
<property name="enrichMessage" value="false" />
<property name="xmlEnvelope" value="" />
<property name="rowsXmlEnvelope" value="payload"/>
<property name="rowXmlEnvelope" value="pricefeed"/>
<property name="queryParams">
<list>
<bean class="org.spagic.smx.components.jdbcquery.QueryParameterConfig" >
<property name="placeHolder" value="priceFeedCode" />
<property name="outputParam" value="false" />
<property name="xpath" value="/payload/pricefeed/priceFeedCode" />
<property name="paramType" value="java.lang.String" />
</bean>
<bean class="org.spagic.smx.components.jdbcquery.QueryParameterConfig" >
<property name="placeHolder" value="priceFeedOption" />
<property name="outputParam" value="false" />
<property name="xpath" value="/payload/pricefeed/priceFeedOption" />
<property name="paramType" value="java.lang.String" />
</bean>
<bean class="org.spagic.smx.components.jdbcquery.QueryParameterConfig" >
<property name="placeHolder" value="processStart" />
<property name="outputParam" value="false" />
<property name="xpath" value="/payload/pricefeed/processStart" />
<property name="paramType" value="java.lang.String" />
</bean>
</list>
</property>
</bean>
</property>
</bean>
</sm:component>
</sm:activationSpec>
</sm:activationSpecs>
</sm:container>

Jndi.xml
+++++++

<entry key="java:comp/env/jdbc/athenaPricingDB">
  <bean class="org.springframework.jdbc.datasource.DriverManagerDataSource">
        <property name="driverClassName" value="oracle.jdbc.driver.OracleDriver"/>
        <property name="url" value="jdbc:oracle:thin:@10.11.1.41:1521:DB03"/>
        <property name="username" value="PRICING_APP"/>
        <property name="password" value="PRICING_APP"/>
  </bean>
</entry>

And you can invoke this service, e.g., from a file poller, xbean below

<file:poller service="athena:pricingFilePoller"
        endpoint="toFtpPoller"
        targetService="athena:jdbcPricingService"
        file="file:PriceFeeds"
        period="40000"
        delay = "20000" >
        <property name="filter">
            <bean class="org.apache.commons.io.filefilter.WildcardFilter">
                <constructor-arg value="*.xml" />
            </bean>
        </property>
</file:poller>

Rgds
subh


Berndt Sevcik wrote:
>
>
> Is it possible to post the full working configuration including the
> servicemix.xml, jndi.xml and the pom.xml file of the SU?
>
> Thanks in advance.
>
> Berndt
>
>
> -----Ursprüngliche Nachricht-----
> Von: subh [mailto:subendu@aol.com]
> Gesendet: Donnerstag, 20. November 2008 03:34
> An: users@servicemix.apache.org
> Betreff: Re: Advanced JDBC by Spargic
>
>
> Just to let you know, I got it working. I was not using the xpath
> properly.
>
> anyways, thanks for looking
>
>
> subh wrote:
>>
>> Hi,
>>
>> I am trying to use the Advanced JDBC Component by Spagic to call a SP. I
>> have configured the component as below
>>
>> <sm:activationSpec componentName="jdbcPricingService"
>> service="myesb:jdbcPricingService"
>> destinationService="myesb:echoService">
>> <sm:component>
>> <bean
>> class="org.spagic.smx.components.jdbcstore.JDBCStoreProcedureComponent">
>> <property name="connConfig">
>> <bean class="org.spagic.smx.components.jdbcquery.JDBCConnectionConfig">
>> <!-- <property name="databaseVendor" value="MySQL" /> -->
>> <property name="datasource" ref="pricingDS"/>
>> </bean>
>> </property>
>> <property name="queryConfig">
>> <bean class="org.spagic.smx.components.jdbcquery.JDBCQueryConfig">
>> <property name="query" value="{call payment($paymentAmount, $sellerId)}"
>> />
>> <property name="enrichMessage" value="FALSE" />
>> <property name="xmlEnvelope" value="store-results" />
>> <property name="queryParams">
>> <list>
>> <bean class="org.spagic.smx.components.jdbcquery.QueryParameterConfig" >
>> <property name="placeHolder" value="paymentAmount" />
>> <property name="outputParam" value="TRUE" />
>> <!-- <property name="XPath" value="null" /> -->
>> <property name="paramType" value="java.lang.String" />
>> </bean>
>> <bean class="org.spagic.smx.components.jdbcquery.QueryParameterConfig" >
>> <property name="placeHolder" value="sellerId" />
>> <property name="outputParam" value="TRUE" />
>> <!-- <property name="XPath" value="null" /> -->
>> <property name="paramType" value="java.lang.String" />
>> </bean>
>> </list>
>> </property>
>> </bean>
>> </property>
>> </bean>
>> </sm:component>
>> </sm:activationSpec>
>>
>> As you can see, my SP needs 2 params ($paymentAmount, $sellerId), I would
>> like to know how could I pass these params while calling this component.
>> If I pass them as
>>
>> <?xml version="1.0" encoding="UTF-8"?>
>> <queryConfig>
>> <paymentAmount>100</paymentAmount>
>> <sellerId>1</sellerId>
>> </queryConfig>
>>
>> I get the following error
>>
>> ERROR
>> ======
>>
>> DEBUG - SedaQueue                      -
>> org.apache.servicemix.jbi.nmr.flow.seda.SedaQueue$1@6778eb dequeued
>> exchange: InOnly[
>>   id: ID:10.30.9.159-11db6eca25c-11:13
>>   status: Active
>>   role: provider
>>   service: {http://com.mycompany.myesb/esb}jdbcPricingService
>>   endpoint: jdbcPricingService
>>   in: <?xml version="1.0" encoding="UTF-8"?><queryConfig>
>> <paymentAmount>100</paymentAmount>
>> <sellerId>1</sellerId>
>> </queryConfig>
>> ]
>> DEBUG - DeliveryChannelImpl            - Send
>> ID:10.30.9.159-11db6eca25c-11:13 in DeliveryChannel{jdbcPricingService}
>> DEBUG - SecuredBroker                  - send exchange with secure broker
>> DEBUG - SedaFlow                       - Called Flow send
>> DEBUG - SedaQueue                      -
>> org.apache.servicemix.jbi.nmr.flow.seda.SedaQueue$1@118a206 dequeued
>> exchange: InOnly[
>>   id: ID:10.30.9.159-11db6eca25c-11:13
>>   status: Error
>>   role: consumer
>>   service: {http://com.mycompany.myesb/esb}jdbcPricingService
>>   endpoint: jdbcPricingService
>>   in: <?xml version="1.0" encoding="UTF-8"?><queryConfig>
>> <paymentAmount>100</paymentAmount>
>> <sellerId>1</sellerId>
>> </queryConfig>
>>   error: java.lang.NullPointerException
>> ]
>> DEBUG - DeliveryChannelImpl            - Notifying exchange
>> ID:10.30.9.159-11db6eca25c-11:13(14e7ecf) in
>> DeliveryChannel{servicemix-file} from processInboundSynchronousEx
>> change
>> DEBUG - DeliveryChannelImpl            - Notified:
>> ID:10.30.9.159-11db6eca25c-11:13(14e7ecf) in
>> DeliveryChannel{servicemix-file} from sendSync
>> ERROR - FileComponent                  - Failed to process file:
>> PriceFeeds\TestJDBC.xml. Reason: java.lang.NullPointerException
>> java.lang.NullPointerException
>>         at java.lang.StringBuffer.<init>(StringBuffer.java:104)
>>         at
>> org.apache.commons.dbutils.QueryRunner.rethrow(QueryRunner.java:347)
>>         at
>> org.spagic.smx.components.jdbcstore.NewStoreProcedureRunner.call(NewStoreProcedureRunner.java:77)
>>         at
>> org.spagic.smx.components.jdbcstore.JDBCStoreProcedureComponent.transform(JDBCStoreProcedureComponent.java:92)
>>         at
>> org.apache.servicemix.components.util.TransformComponentSupport.onMessageExchange(TransformComponentSupport.java:71)
>>         at
>> org.apache.servicemix.jbi.messaging.DeliveryChannelImpl.processInBound(DeliveryChannelImpl.java:610)
>>         at
>> org.apache.servicemix.jbi.nmr.flow.AbstractFlow.doRouting(AbstractFlow.java:172)
>>         at
>> org.apache.servicemix.jbi.nmr.flow.seda.SedaFlow.doRouting(SedaFlow.java:167)
>>         at
>> org.apache.servicemix.jbi.nmr.flow.seda.SedaQueue$1.run(SedaQueue.java:134)
>>         at
>> java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:650)
>>         at
>> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:675)
>>         at java.lang.Thread.run(Thread.java:595)
>>
>> Will appreciate any help.
>>
>> rgds
>> subh
>>
>>
>> Berndt Sevcik wrote:
>>>
>>> I try to use the Advanced JDBC Component by Spargic in Servicemix. When
>>> I
>>> deploy the Component I get the following error:
>>> <
>>> loc-message>org.springframework.beans.factory.parsing.BeanDefinitionParsingException:
>>> Configuration problem: Class that bean class
>>> [org.spagic.smx.components.jdbcquery.JDBCAdvancedQueryComponent] depends
>>> on not found
>>> Offending resource: file
>>> [C:\apache-servicemix-3.2.2\data\smx\service-assemblies\tutorial-jdbc-sa\version_20\sus\servicemix-lwcontainer\tutorial-adv_jdbc-su\servicemix.xml]
>>> Bean ''; nested exception is java.lang.NoClassDefFoundError:
>>> org/springframework/jdbc/CannotGetJdbcConnectionException</loc-message>
>>>
>>> Has someone an idea? In the following the steps I have done to configure
>>> it.
>>>
>>> First I copied:
>>> commons-dbutils-1.1.jar and mysql-connector-java-5.0.7-bin.jar to the
>>> lib/ directory
>>> and spagic-advanced-jdbc-2.3.0.jar to the lib/optional directory of
>>> Servicemix (like in Spagic).
>>>
>>> In jndi.xml I added:
>>>   <entry key="java:comp/env/jdbc/servicemixDB">
>>>     <!-- <bean id="mysql-ds"
>>> class="org.springframework.jdbc.datasource.DriverManagerDataSource"> -->
>>>         <bean id="mysql-ds"
>>> class="org.apache.commons.dbcp.BasicDataSource">
>>>         <property name="driverName" value="com.mysql.jdbc.Driver"/>
>>>         <property name="url" value="jdbc:mysql://localhost/NameInfo"/>
>>>         <property name="user" value="user"/>
>>>         <property name="password" value="password"/>
>>>     </bean>
>>>   </entry>
>>>
>>> Then I created a servicemix.xml file that looks like this:
>>> <beans xmlns:sm="http://servicemix.apache.org/config/1.0"
>>>        xmlns:foo="http://servicemix.apache.org/foo"
>>>        xmlns="http://www.springframework.org/schema/beans"
>>>        xmlns:xsi="http://http://www.w3.org/2001/XMLSchema-instance"
>>>        xsi:schemaLocation="http://servicemix.apache.org/config/1.0
>>> http://servicemix.apache.org/schema/servicemix-core-3.2.2.xsd
>>>        http://www.springframework.org/schema/beans
>>> http://www.springframework.org/schema/beans/spring-beans-2.0.xsd">
>>>
>>>   <!-- This is the Spring configuration of a datasource defined in
>>> SERVICE_MIX_HOME/conf/jndi.xml -->
>>>   <bean id="mySql"
>>> class="org.springframework.jndi.JndiObjectFactoryBean">
>>>     <property name="jndiName" value="java:comp/env/jdbc/servicemixDB"/>
>>>   </bean>
>>>
>>>   <classpath>
>>>     <location>.</location>
>>>   </classpath>
>>>
>>>
>>>   <sm:serviceunit id="jbi">
>>>       <!-- Put lw components here -->
>>>       <!-- Note that JDBC Endpoint declare a property ref to the
>>> dataSource defined by the bean above -->
>>>       <!-- ####################### myJDBCdbAndrea
>>> ######################## -->
>>>           <sm:activationSpecs>
>>>         <sm:activationSpec componentName="myJdbcQueryadvJdbcDatasource2"
>>> service="foo:myJdbcQueryadvJdbcDatasource2"
>>> destinationService="foo:myScreenOutputadvJdbcDatasource2">
>>>           <sm:component>
>>>             <bean
>>> class="org.spagic.smx.components.jdbcquery.JDBCAdvancedQueryComponent">
>>>               <property name="connConfig">
>>>                 <bean
>>> class="org.spagic.smx.components.jdbcquery.JDBCConnectionConfig">
>>>                   <property name="datasource" ref="mysql"/>
>>>                 </bean>
>>>               </property>
>>>               <property name="queryConfig">
>>>                 <bean
>>> class="org.spagic.smx.components.jdbcquery.JDBCQueryConfig">
>>>                   <property name="query" value="SELECT * FROM user where
>>> SecondName like $name" />
>>>                   <property name="enrichMessage" value="TRUE" />
>>>                   <property name="xmlEnvelope" value="Customer" />
>>>                   <property name="queryParams">
>>>                     <list>
>>>                       <bean
>>> class="org.spagic.smx.components.jdbcquery.QueryParameterConfig" >
>>>                         <property name="placeHolder" value="name" />
>>>                         <property name="outputParam" value="FALSE" />
>>>                         <property name="XPath"
>>> value="/nameinfo/givenName" />
>>>                         <property name="paramType"
>>> value="java.lang.String" />
>>>                       </bean>
>>>                     </list>
>>>                   </property>
>>>                 </bean>
>>>               </property>
>>>             </bean>
>>>           </sm:component>
>>>         </sm:activationSpec>
>>>       </sm:activationSpecs>
>>>   </sm:serviceunit>
>>>
>>> </beans>
>>>
>>> With mvn install I created my Service Assembly.
>>>
>>> --
>>> Dipl.-Ing. Berndt Sevcik
>>> TU Wien
>>> Institut für Computertechnik
>>> Gußhausstraße 27-29/384 - 1040 Wien
>>> Tel.: +43 1 58801 38436
>>> Mail: sevcik@ict.tuwien.ac.at
>>> URL: http://www.ict.tuwien.ac.at
>>>
>>>
>>>
>>>
>>>
>>
>>
>
> --
> View this message in context:
> http://www.nabble.com/Advanced-JDBC-by-Spargic-tp20538155p20593965.html
> Sent from the ServiceMix - User mailing list archive at Nabble.com.
>
>
>

--
View this message in context: http://www.nabble.com/Advanced-JDBC-by-Spargic-tp20538155p20702669.html
Sent from the ServiceMix - User mailing list archive at Nabble.com.


Re: AW: AW: Advanced JDBC by Spargic

Posted by subh <su...@aol.com>.
Can you post the entire configuration from servicemix.xml?

How did you specify the "xmlEnvelope", "rowsXmlEnvelope" and
"rowXmlEnvelope" property?



Berndt Sevcik wrote:
> 
> With your help the setup is now working without query Parameters. When I
> add the following lines to servicemix.xml with XPath:
> 
> <property name="query" value="SELECT * FROM user WHERE SecondName like
> $name" />
> ...
>                  <property name="queryParams">
>                     <list>
>                       <bean
> class="org.spagic.smx.components.jdbcquery.QueryParameterConfig" >
>                         <property name="placeHolder" value="name" />
>                         <property name="outputParam" value="TRUE" />
>                         <property name="xpath" value="/queryConfig/name"
> />
>                         <property name="paramType"
> value="java.lang.String" />
>                       </bean>
>                     </list>
>                   </property>
> 
>  I get always the following exception:
> 
> 17:06:32,515 | WARN  |
> pool-flow.seda.myJdbcQueryadvJdbcDatasource2-thread-2 | FileComponent           
> | icemix.file.FilePollerEndpoint  389 | Message in file
> C:\Projects\SimpleJDBC\poller\input.xml could not be handled successfully:
> java.io.IOException: Stream closed
> javax.xml.transform.TransformerException: java.io.IOException: Stream
> closed
>         at
> org.apache.xalan.transformer.TransformerIdentityImpl.transform(TransformerIdentityImpl.java:505)
>         at
> org.apache.servicemix.jbi.jaxp.SourceTransformer.toResult(SourceTransformer.java:125)
>         at
> org.apache.servicemix.jbi.jaxp.SourceTransformer.toResult(SourceTransformer.java:103)
>         at
> org.apache.servicemix.jbi.jaxp.SourceTransformer.toString(SourceTransformer.java:140)
>         at
> org.apache.servicemix.jbi.jaxp.SourceTransformer.contentToString(SourceTransformer.java:161)
>         at
> org.spagic.smx.components.jdbcquery.JDBCAdvancedQueryComponent.transform(JDBCAdvancedQueryComponent.java:147)
>         at
> org.apache.servicemix.components.util.TransformComponentSupport.onMessageExchange(TransformComponentSupport.java:71)
>         at
> org.apache.servicemix.jbi.messaging.DeliveryChannelImpl.processInBound(DeliveryChannelImpl.java:620)
>         at
> org.apache.servicemix.jbi.nmr.flow.AbstractFlow.doRouting(AbstractFlow.java:172)
>         at
> org.apache.servicemix.jbi.nmr.flow.seda.SedaFlow.doRouting(SedaFlow.java:168)
>         at
> org.apache.servicemix.jbi.nmr.flow.seda.SedaQueue$1.run(SedaQueue.java:134)
>         at
> java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:650)
>         at
> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:675)
>         at java.lang.Thread.run(Thread.java:595)
> 
> My input file looks like this:
> <?xml version="1.0" encoding="UTF-8"?>
> <queryConfig>
> <name>Sevcik</name>
> </queryConfig>
> 
> Is there an error in my XPath? Any other idea? Thanks in advance.
> 
> Berndt
> --
> Dipl.-Ing. Berndt Sevcik
> TU Wien
> Institut für Computertechnik
> Gußhausstraße 27-29/384 - 1040 Wien
> Tel.: +43 1 58801 38436
> Mail: sevcik@ict.tuwien.ac.at
> URL: http://www.ict.tuwien.ac.at
> 
> 
> 
> -----Ursprüngliche Nachricht-----
> Von: subh [mailto:subendu@aol.com]
> Gesendet: Mittwoch, 26. November 2008 16:21
> An: users@servicemix.apache.org
> Betreff: Re: AW: Advanced JDBC by Spargic
> 
> 
> Here you go..
> 
> Servicemix.xml
> ++++++++++++
> 
> <bean id="athenaPricingDS"
> class="org.springframework.jndi.JndiObjectFactoryBean">
> <property name="jndiName" value="java:comp/env/jdbc/athenaPricingDB"/>
> </bean>
> 
> <sm:activationSpec componentName="jdbcPricingService"
> service="athena:jdbcPricingService"
> destinationService="athena:echoService">
> <sm:component>
> <bean
> class="org.spagic.smx.components.jdbcstore.JDBCStoreProcedureComponent">
> <property name="connConfig">
> <bean class="org.spagic.smx.components.jdbcquery.JDBCConnectionConfig">
> <property name="datasource" ref="athenaPricingDS"/>
> </bean>
> </property>
> <property name="queryConfig">
> <bean class="org.spagic.smx.components.jdbcquery.JDBCQueryConfig">
> <property name="query" value="{call
> COMMON_PRICE_DATA.processPrices($priceFeedCode, $priceFeedOption,
> $processStart)}" />
> <property name="enrichMessage" value="false" />
> <property name="xmlEnvelope" value="" />
> <property name="rowsXmlEnvelope" value="payload"/>
> <property name="rowXmlEnvelope" value="pricefeed"/>
> <property name="queryParams">
> <list>
> <bean class="org.spagic.smx.components.jdbcquery.QueryParameterConfig" >
> <property name="placeHolder" value="priceFeedCode" />
> <property name="outputParam" value="false" />
> <property name="xpath" value="/payload/pricefeed/priceFeedCode" />
> <property name="paramType" value="java.lang.String" />
> </bean>
> <bean class="org.spagic.smx.components.jdbcquery.QueryParameterConfig" >
> <property name="placeHolder" value="priceFeedOption" />
> <property name="outputParam" value="false" />
> <property name="xpath" value="/payload/pricefeed/priceFeedOption" />
> <property name="paramType" value="java.lang.String" />
> </bean>
> <bean class="org.spagic.smx.components.jdbcquery.QueryParameterConfig" >
> <property name="placeHolder" value="processStart" />
> <property name="outputParam" value="false" />
> <property name="xpath" value="/payload/pricefeed/processStart" />
> <property name="paramType" value="java.lang.String" />
> </bean>
> </list>
> </property>
> </bean>
> </property>
> </bean>
> </sm:component>
> </sm:activationSpec>
> </sm:activationSpecs>
> </sm:container>
> 
> Jndi.xml
> +++++++
> 
> <entry key="java:comp/env/jdbc/athenaPricingDB">
>   <bean
> class="org.springframework.jdbc.datasource.DriverManagerDataSource">
>         <property name="driverClassName"
> value="oracle.jdbc.driver.OracleDriver"/>
>         <property name="url"
> value="jdbc:oracle:thin:@10.11.1.41:1521:DB03"/>
>         <property name="username" value="PRICING_APP"/>
>         <property name="password" value="PRICING_APP"/>
>   </bean>
> </entry>
> 
> And you can invoke this service, e.g., from a file poller, xbean below
> 
> <file:poller service="athena:pricingFilePoller"
>         endpoint="toFtpPoller"
>         targetService="athena:jdbcPricingService"
>         file="file:PriceFeeds"
>         period="40000"
>         delay = "20000" >
>         <property name="filter">
>             <bean class="org.apache.commons.io.filefilter.WildcardFilter">
>                 <constructor-arg value="*.xml" />
>             </bean>
>         </property>
> </file:poller>
> 
> Rgds
> subh
> 
> 
> Berndt Sevcik wrote:
>>
>>
>> Is it possible to post the full working configuration including the
>> servicemix.xml, jndi.xml and the pom.xml file of the SU?
>>
>> Thanks in advance.
>>
>> Berndt
>>
>>
>> -----Ursprüngliche Nachricht-----
>> Von: subh [mailto:subendu@aol.com]
>> Gesendet: Donnerstag, 20. November 2008 03:34
>> An: users@servicemix.apache.org
>> Betreff: Re: Advanced JDBC by Spargic
>>
>>
>> Just to let you know, I got it working. I was not using the xpath
>> properly.
>>
>> anyways, thanks for looking
>>
>>
>> subh wrote:
>>>
>>> Hi,
>>>
>>> I am trying to use the Advanced JDBC Component by Spagic to call a SP. I
>>> have configured the component as below
>>>
>>> <sm:activationSpec componentName="jdbcPricingService"
>>> service="myesb:jdbcPricingService"
>>> destinationService="myesb:echoService">
>>> <sm:component>
>>> <bean
>>> class="org.spagic.smx.components.jdbcstore.JDBCStoreProcedureComponent">
>>> <property name="connConfig">
>>> <bean class="org.spagic.smx.components.jdbcquery.JDBCConnectionConfig">
>>> <!-- <property name="databaseVendor" value="MySQL" /> -->
>>> <property name="datasource" ref="pricingDS"/>
>>> </bean>
>>> </property>
>>> <property name="queryConfig">
>>> <bean class="org.spagic.smx.components.jdbcquery.JDBCQueryConfig">
>>> <property name="query" value="{call payment($paymentAmount, $sellerId)}"
>>> />
>>> <property name="enrichMessage" value="FALSE" />
>>> <property name="xmlEnvelope" value="store-results" />
>>> <property name="queryParams">
>>> <list>
>>> <bean class="org.spagic.smx.components.jdbcquery.QueryParameterConfig" >
>>> <property name="placeHolder" value="paymentAmount" />
>>> <property name="outputParam" value="TRUE" />
>>> <!-- <property name="XPath" value="null" /> -->
>>> <property name="paramType" value="java.lang.String" />
>>> </bean>
>>> <bean class="org.spagic.smx.components.jdbcquery.QueryParameterConfig" >
>>> <property name="placeHolder" value="sellerId" />
>>> <property name="outputParam" value="TRUE" />
>>> <!-- <property name="XPath" value="null" /> -->
>>> <property name="paramType" value="java.lang.String" />
>>> </bean>
>>> </list>
>>> </property>
>>> </bean>
>>> </property>
>>> </bean>
>>> </sm:component>
>>> </sm:activationSpec>
>>>
>>> As you can see, my SP needs 2 params ($paymentAmount, $sellerId), I
>>> would
>>> like to know how could I pass these params while calling this component.
>>> If I pass them as
>>>
>>> <?xml version="1.0" encoding="UTF-8"?>
>>> <queryConfig>
>>> <paymentAmount>100</paymentAmount>
>>> <sellerId>1</sellerId>
>>> </queryConfig>
>>>
>>> I get the following error
>>>
>>> ERROR
>>> ======
>>>
>>> DEBUG - SedaQueue                      -
>>> org.apache.servicemix.jbi.nmr.flow.seda.SedaQueue$1@6778eb dequeued
>>> exchange: InOnly[
>>>   id: ID:10.30.9.159-11db6eca25c-11:13
>>>   status: Active
>>>   role: provider
>>>   service: {http://com.mycompany.myesb/esb}jdbcPricingService
>>>   endpoint: jdbcPricingService
>>>   in: <?xml version="1.0" encoding="UTF-8"?><queryConfig>
>>> <paymentAmount>100</paymentAmount>
>>> <sellerId>1</sellerId>
>>> </queryConfig>
>>> ]
>>> DEBUG - DeliveryChannelImpl            - Send
>>> ID:10.30.9.159-11db6eca25c-11:13 in DeliveryChannel{jdbcPricingService}
>>> DEBUG - SecuredBroker                  - send exchange with secure
>>> broker
>>> DEBUG - SedaFlow                       - Called Flow send
>>> DEBUG - SedaQueue                      -
>>> org.apache.servicemix.jbi.nmr.flow.seda.SedaQueue$1@118a206 dequeued
>>> exchange: InOnly[
>>>   id: ID:10.30.9.159-11db6eca25c-11:13
>>>   status: Error
>>>   role: consumer
>>>   service: {http://com.mycompany.myesb/esb}jdbcPricingService
>>>   endpoint: jdbcPricingService
>>>   in: <?xml version="1.0" encoding="UTF-8"?><queryConfig>
>>> <paymentAmount>100</paymentAmount>
>>> <sellerId>1</sellerId>
>>> </queryConfig>
>>>   error: java.lang.NullPointerException
>>> ]
>>> DEBUG - DeliveryChannelImpl            - Notifying exchange
>>> ID:10.30.9.159-11db6eca25c-11:13(14e7ecf) in
>>> DeliveryChannel{servicemix-file} from processInboundSynchronousEx
>>> change
>>> DEBUG - DeliveryChannelImpl            - Notified:
>>> ID:10.30.9.159-11db6eca25c-11:13(14e7ecf) in
>>> DeliveryChannel{servicemix-file} from sendSync
>>> ERROR - FileComponent                  - Failed to process file:
>>> PriceFeeds\TestJDBC.xml. Reason: java.lang.NullPointerException
>>> java.lang.NullPointerException
>>>         at java.lang.StringBuffer.<init>(StringBuffer.java:104)
>>>         at
>>> org.apache.commons.dbutils.QueryRunner.rethrow(QueryRunner.java:347)
>>>         at
>>> org.spagic.smx.components.jdbcstore.NewStoreProcedureRunner.call(NewStoreProcedureRunner.java:77)
>>>         at
>>> org.spagic.smx.components.jdbcstore.JDBCStoreProcedureComponent.transform(JDBCStoreProcedureComponent.java:92)
>>>         at
>>> org.apache.servicemix.components.util.TransformComponentSupport.onMessageExchange(TransformComponentSupport.java:71)
>>>         at
>>> org.apache.servicemix.jbi.messaging.DeliveryChannelImpl.processInBound(DeliveryChannelImpl.java:610)
>>>         at
>>> org.apache.servicemix.jbi.nmr.flow.AbstractFlow.doRouting(AbstractFlow.java:172)
>>>         at
>>> org.apache.servicemix.jbi.nmr.flow.seda.SedaFlow.doRouting(SedaFlow.java:167)
>>>         at
>>> org.apache.servicemix.jbi.nmr.flow.seda.SedaQueue$1.run(SedaQueue.java:134)
>>>         at
>>> java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:650)
>>>         at
>>> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:675)
>>>         at java.lang.Thread.run(Thread.java:595)
>>>
>>> Will appreciate any help.
>>>
>>> rgds
>>> subh
>>>
>>>
>>> Berndt Sevcik wrote:
>>>>
>>>> I try to use the Advanced JDBC Component by Spargic in Servicemix. When
>>>> I
>>>> deploy the Component I get the following error:
>>>> <
>>>> loc-message>org.springframework.beans.factory.parsing.BeanDefinitionParsingException:
>>>> Configuration problem: Class that bean class
>>>> [org.spagic.smx.components.jdbcquery.JDBCAdvancedQueryComponent]
>>>> depends
>>>> on not found
>>>> Offending resource: file
>>>> [C:\apache-servicemix-3.2.2\data\smx\service-assemblies\tutorial-jdbc-sa\version_20\sus\servicemix-lwcontainer\tutorial-adv_jdbc-su\servicemix.xml]
>>>> Bean ''; nested exception is java.lang.NoClassDefFoundError:
>>>> org/springframework/jdbc/CannotGetJdbcConnectionException</loc-message>
>>>>
>>>> Has someone an idea? In the following the steps I have done to
>>>> configure
>>>> it.
>>>>
>>>> First I copied:
>>>> commons-dbutils-1.1.jar and mysql-connector-java-5.0.7-bin.jar to the
>>>> lib/ directory
>>>> and spagic-advanced-jdbc-2.3.0.jar to the lib/optional directory of
>>>> Servicemix (like in Spagic).
>>>>
>>>> In jndi.xml I added:
>>>>   <entry key="java:comp/env/jdbc/servicemixDB">
>>>>     <!-- <bean id="mysql-ds"
>>>> class="org.springframework.jdbc.datasource.DriverManagerDataSource">
>>>> -->
>>>>         <bean id="mysql-ds"
>>>> class="org.apache.commons.dbcp.BasicDataSource">
>>>>         <property name="driverName" value="com.mysql.jdbc.Driver"/>
>>>>         <property name="url" value="jdbc:mysql://localhost/NameInfo"/>
>>>>         <property name="user" value="user"/>
>>>>         <property name="password" value="password"/>
>>>>     </bean>
>>>>   </entry>
>>>>
>>>> Then I created a servicemix.xml file that looks like this:
>>>> <beans xmlns:sm="http://servicemix.apache.org/config/1.0"
>>>>        xmlns:foo="http://servicemix.apache.org/foo"
>>>>        xmlns="http://www.springframework.org/schema/beans"
>>>>        xmlns:xsi="http://http://www.w3.org/2001/XMLSchema-instance"
>>>>        xsi:schemaLocation="http://servicemix.apache.org/config/1.0
>>>> http://servicemix.apache.org/schema/servicemix-core-3.2.2.xsd
>>>>        http://www.springframework.org/schema/beans
>>>> http://www.springframework.org/schema/beans/spring-beans-2.0.xsd">
>>>>
>>>>   <!-- This is the Spring configuration of a datasource defined in
>>>> SERVICE_MIX_HOME/conf/jndi.xml -->
>>>>   <bean id="mySql"
>>>> class="org.springframework.jndi.JndiObjectFactoryBean">
>>>>     <property name="jndiName" value="java:comp/env/jdbc/servicemixDB"/>
>>>>   </bean>
>>>>
>>>>   <classpath>
>>>>     <location>.</location>
>>>>   </classpath>
>>>>
>>>>
>>>>   <sm:serviceunit id="jbi">
>>>>       <!-- Put lw components here -->
>>>>       <!-- Note that JDBC Endpoint declare a property ref to the
>>>> dataSource defined by the bean above -->
>>>>       <!-- ####################### myJDBCdbAndrea
>>>> ######################## -->
>>>>           <sm:activationSpecs>
>>>>         <sm:activationSpec
>>>> componentName="myJdbcQueryadvJdbcDatasource2"
>>>> service="foo:myJdbcQueryadvJdbcDatasource2"
>>>> destinationService="foo:myScreenOutputadvJdbcDatasource2">
>>>>           <sm:component>
>>>>             <bean
>>>> class="org.spagic.smx.components.jdbcquery.JDBCAdvancedQueryComponent">
>>>>               <property name="connConfig">
>>>>                 <bean
>>>> class="org.spagic.smx.components.jdbcquery.JDBCConnectionConfig">
>>>>                   <property name="datasource" ref="mysql"/>
>>>>                 </bean>
>>>>               </property>
>>>>               <property name="queryConfig">
>>>>                 <bean
>>>> class="org.spagic.smx.components.jdbcquery.JDBCQueryConfig">
>>>>                   <property name="query" value="SELECT * FROM user
>>>> where
>>>> SecondName like $name" />
>>>>                   <property name="enrichMessage" value="TRUE" />
>>>>                   <property name="xmlEnvelope" value="Customer" />
>>>>                   <property name="queryParams">
>>>>                     <list>
>>>>                       <bean
>>>> class="org.spagic.smx.components.jdbcquery.QueryParameterConfig" >
>>>>                         <property name="placeHolder" value="name" />
>>>>                         <property name="outputParam" value="FALSE" />
>>>>                         <property name="XPath"
>>>> value="/nameinfo/givenName" />
>>>>                         <property name="paramType"
>>>> value="java.lang.String" />
>>>>                       </bean>
>>>>                     </list>
>>>>                   </property>
>>>>                 </bean>
>>>>               </property>
>>>>             </bean>
>>>>           </sm:component>
>>>>         </sm:activationSpec>
>>>>       </sm:activationSpecs>
>>>>   </sm:serviceunit>
>>>>
>>>> </beans>
>>>>
>>>> With mvn install I created my Service Assembly.
>>>>
>>>> --
>>>> Dipl.-Ing. Berndt Sevcik
>>>> TU Wien
>>>> Institut für Computertechnik
>>>> Gußhausstraße 27-29/384 - 1040 Wien
>>>> Tel.: +43 1 58801 38436
>>>> Mail: sevcik@ict.tuwien.ac.at
>>>> URL: http://www.ict.tuwien.ac.at
>>>>
>>>>
>>>>
>>>>
>>>>
>>>
>>>
>>
>> --
>> View this message in context:
>> http://www.nabble.com/Advanced-JDBC-by-Spargic-tp20538155p20593965.html
>> Sent from the ServiceMix - User mailing list archive at Nabble.com.
>>
>>
>>
> 
> --
> View this message in context:
> http://www.nabble.com/Advanced-JDBC-by-Spargic-tp20538155p20702669.html
> Sent from the ServiceMix - User mailing list archive at Nabble.com.
> 
> 
> 

-- 
View this message in context: http://www.nabble.com/Advanced-JDBC-by-Spargic-tp20538155p20857110.html
Sent from the ServiceMix - User mailing list archive at Nabble.com.