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 -
> [EMAIL PROTECTED] 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 -
> [EMAIL PROTECTED] 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: [EMAIL PROTECTED]
>> 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.