Hey Guys.  Thanks for the effort.

I did realize that there was a mismatch in versions between what we were compiling against, and what was in the distro. Thinking this might be the problem, I having everything matching in our pom.xml.

But, the problem persists. I'm having trouble mapping it to a specific message, but think it has to do with a JmsInUsingJCABinding.

<sm:activationSpec componentName="TSB.LI.Caps.Receiver"
                                                
service="tsb:TSB.LI.Caps.Receiver"
                                                
failIfNoDestinationEndpoint="false">
<sm:component><bean class="org.apache.servicemix.components.jms.JmsInUsingJCABinding">

                                            <property name="jcaContainer" 
ref="jencks"/>

                                            <property name="activationSpec">
                                              <bean 
class="org.apache.activemq.ra.ActiveMQActivationSpec">
                                                <property name="destination" 
value="TSB.LI.Caps"/>
                                                <property name="destinationType" 
value="javax.jms.Topic"/>
                                              </bean>
                                            </property>
                                          </bean></sm:component>
                                        </sm:activationSpec>

Attached is the config.

<?xml version="1.0" encoding="UTF-8"?>
<!--

    Licensed to the Apache Software Foundation (ASF) under one or more
    contributor license agreements.  See the NOTICE file distributed with
    this work for additional information regarding copyright ownership.
    The ASF licenses this file to You under the Apache License, Version 2.0
    (the "License"); you may not use this file except in compliance with
    the License.  You may obtain a copy of the License at

       http://www.apache.org/licenses/LICENSE-2.0

    Unless required by applicable law or agreed to in writing, software
    distributed under the License is distributed on an "AS IS" BASIS,
    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    See the License for the specific language governing permissions and
    limitations under the License.

-->
<beans xmlns:sm="http://servicemix.apache.org/config/1.0";
       xmlns:audit="http://servicemix.apache.org/audit/1.0";
	   xmlns:jms="http://servicemix.apache.org/jms/1.0";
	   xmlns:amqra="http://activemq.org/ra/1.0";
	   xmlns:eip="http://servicemix.apache.org/eip/1.0";
	   xmlns:tsb="http://tsb.raytheon.com/";>

  <!-- System properties -->
  <sm:systemProperties>
    <property name="properties">
      <map>
        <entry key="java.security.auth.login.config">
          <bean class="org.springframework.util.ResourceUtils" factory-method="getFile">
            <constructor-arg value="classpath:login.properties"/>
          </bean>
        </entry>
      </map>
    </property>
  </sm:systemProperties>

  <bean id="propertyConfigurer" class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
      <property name="location" value="classpath:servicemix.properties" />
  </bean>

  <!-- Include other resources -->
  <import resource="classpath:security.xml" />
  <import resource="classpath:jmx.xml" />
  <import resource="classpath:AMS.Broker.xml" />
  <import resource="classpath:tx.xml" />
  <import resource="classpath:jndi.xml" />

  <!-- the JBI container -->
  <sm:container id="jbi" 
                rootDir="./data/smx" 
                MBeanServer="#jmxServer"
                installationDirPath="./install"
                deploymentDirPath="./deploy"
                monitorInterval="1"
               
                createJmxConnector="false"
                depends-on="jndi">

    <!-- Use a secured broker (see security.xml)
         and define the 3 standard flows --> 
    <sm:broker>
      <sm:securedBroker authorizationMap="#authorizationMap">
        <sm:flows>
          <sm:sedaFlow />
          <sm:jmsFlow jmsURL="${activemq.url}" />
          <sm:jcaFlow connectionManager="#connectionManager"
                      jmsURL="${activemq.url}" />
        </sm:flows>
      </sm:securedBroker>
    </sm:broker>

    <sm:executorFactory>
      <bean class="org.apache.servicemix.executors.impl.ExecutorFactoryImpl">
        <property name="defaultConfig">
            <bean class="org.apache.servicemix.executors.impl.ExecutorConfig">
              <property name="corePoolSize" value="${servicemix.corePoolSize}"/>
              <property name="maximumPoolSize" value="${servicemix.maximumPoolSize}"/>
              <property name="queueSize" value="${servicemix.queueSize}"/>
            </bean>
        </property>
      </bean>
    </sm:executorFactory>

    <sm:activationSpecs>
		<!-- Router -->
		<sm:activationSpec componentName="router" service="tsb:router"
			 failIfNoDestinationEndpoint="false">
			<sm:component>
				<bean class="com.raytheon.tsb.comm.CommRouter"/>
			</sm:component>
		</sm:activationSpec>
<sm:activationSpec componentName="TSB.Health.Receiver" 
						service="tsb:TSB.Health.Receiver" 
						failIfNoDestinationEndpoint="false">
					  <sm:component><bean class="org.apache.servicemix.components.jms.JmsInUsingJCABinding">

					    <property name="jcaContainer" ref="jencks"/>

					    <property name="activationSpec">
					      <bean class="org.apache.activemq.ra.ActiveMQActivationSpec">
					        <property name="destination" value="TSB.Health"/>
					        <property name="destinationType" value="javax.jms.Topic"/>
					      </bean>
					    </property>
					  </bean></sm:component>
					</sm:activationSpec>

<!-- Comm Service -->
					<sm:activationSpec componentName="commservice" 
						service="tsb:commservice" failIfNoDestinationEndpoint="false">
						<sm:component>
							<bean class="com.raytheon.tsb.comm.CommComponent"/>
						</sm:component>
						<sm:subscriptions>
										<sm:subscriptionSpec service="tsb:TSB.VDP.Receiver"/>
					                   
									</sm:subscriptions>
					</sm:activationSpec>
					
					<!-- Container/Service Manager -->
								<sm:activationSpec componentName="containermanager" 
									service="tsb:containermanager" failIfNoDestinationEndpoint="false">
									<sm:component>
										<bean class="com.raytheon.tsb.cm.ContainerManagerService">
											<constructor-arg value="30000"/>
											<constructor-arg value="5000"/>
										</bean>
									</sm:component>
									<sm:subscriptions>
										<sm:subscriptionSpec service="tsb:TSB.LI.Role.Receiver"/>
					                    <sm:subscriptionSpec service="tsb:TSB.Health.Receiver"/>
										<sm:subscriptionSpec service="tsb:TSB.PlatformHealth.Receiver"/>
										<sm:subscriptionSpec service="tsb:TSB.CellHealth.Receiver"/>
									</sm:subscriptions>
								</sm:activationSpec>
		
					<sm:activationSpec componentName="TSB.LI.Caps.Receiver" 
						service="tsb:TSB.LI.Caps.Receiver" 
						failIfNoDestinationEndpoint="false">
					  <sm:component><bean class="org.apache.servicemix.components.jms.JmsInUsingJCABinding">

					    <property name="jcaContainer" ref="jencks"/>

					    <property name="activationSpec">
					      <bean class="org.apache.activemq.ra.ActiveMQActivationSpec">
					        <property name="destination" value="TSB.LI.Caps"/>
					        <property name="destinationType" value="javax.jms.Topic"/>
					      </bean>
					    </property>
					  </bean></sm:component>
					</sm:activationSpec>

					<sm:activationSpec componentName="TSB.LI.PlatformCaps.Receiver" 
						service="tsb:TSB.LI.PlatformCaps.Receiver" 
						failIfNoDestinationEndpoint="false">
					  <sm:component><bean class="org.apache.servicemix.components.jms.JmsInUsingJCABinding">

					    <property name="jcaContainer" ref="jencks"/>

					    <property name="activationSpec">
					      <bean class="org.apache.activemq.ra.ActiveMQActivationSpec">
					        <property name="destination" value="TSB.LI.PlatformCaps"/>
					        <property name="destinationType" value="javax.jms.Topic"/>
					      </bean>
					    </property>
					  </bean></sm:component>
					</sm:activationSpec>

					<sm:activationSpec componentName="TSB.LI.CellCaps.Receiver" 
						service="tsb:TSB.LI.CellCaps.Receiver" 
						failIfNoDestinationEndpoint="false">
					  <sm:component><bean class="org.apache.servicemix.components.jms.JmsInUsingJCABinding">

					    <property name="jcaContainer" ref="jencks"/>

					    <property name="activationSpec">
					      <bean class="org.apache.activemq.ra.ActiveMQActivationSpec">
					        <property name="destination" value="TSB.LI.CellCaps"/>
					        <property name="destinationType" value="javax.jms.Topic"/>
					      </bean>
					    </property>
					  </bean></sm:component>
					</sm:activationSpec>

					<sm:activationSpec componentName="TSB.Task.Receiver" 
						service="tsb:TSB.Task.Receiver" 
						failIfNoDestinationEndpoint="false">
					  <sm:component><bean class="org.apache.servicemix.components.jms.JmsInUsingJCABinding">

					    <property name="jcaContainer" ref="jencks"/>

					    <property name="activationSpec">
					      <bean class="org.apache.activemq.ra.ActiveMQActivationSpec">
					        <property name="destination" value="TSB.Task"/>
					        <property name="destinationType" value="javax.jms.Topic"/>
					      </bean>
					    </property>
					  </bean></sm:component>
					</sm:activationSpec>

					<sm:activationSpec componentName="TSB.TaskStatus.Receiver" 
						service="tsb:TSB.TaskStatus.Receiver" 
						failIfNoDestinationEndpoint="false">
					  <sm:component><bean class="org.apache.servicemix.components.jms.JmsInUsingJCABinding">

					    <property name="jcaContainer" ref="jencks"/>

					    <property name="activationSpec">
					      <bean class="org.apache.activemq.ra.ActiveMQActivationSpec">
					        <property name="destination" value="TSB.TaskStatus"/>
					        <property name="destinationType" value="javax.jms.Topic"/>
					      </bean>
					    </property>
					  </bean></sm:component>
					</sm:activationSpec>

					<sm:activationSpec componentName="TSB.Shared.Receiver" 
						service="tsb:TSB.Shared.Receiver" 
						failIfNoDestinationEndpoint="false">
					  <sm:component><bean class="org.apache.servicemix.components.jms.JmsInUsingJCABinding">

					    <property name="jcaContainer" ref="jencks"/>

					    <property name="activationSpec">
					      <bean class="org.apache.activemq.ra.ActiveMQActivationSpec">
					        <property name="destination" value="TSB.Shared"/>
					        <property name="destinationType" value="javax.jms.Topic"/>
					      </bean>
					    </property>
					  </bean></sm:component>
					</sm:activationSpec>

					
					
					<sm:activationSpec componentName="TSB.PlatformHealth.Receiver"
						 service="tsb:TSB.PlatformHealth.Receiver" 
						failIfNoDestinationEndpoint="false">
					  <sm:component><bean class="org.apache.servicemix.components.jms.JmsInUsingJCABinding">

					    <property name="jcaContainer" ref="jencks"/>

					    <property name="activationSpec">
					      <bean class="org.apache.activemq.ra.ActiveMQActivationSpec">
					        <property name="destination" value="TSB.PlatformHealth"/>
					        <property name="destinationType" value="javax.jms.Topic"/>
					      </bean>
					    </property>
					  </bean></sm:component>
					</sm:activationSpec>
					
					<sm:activationSpec componentName="TSB.CellHealth.Receiver"
						 service="tsb:TSB.CellHealth.Receiver" 
						failIfNoDestinationEndpoint="false">
					  <sm:component><bean class="org.apache.servicemix.components.jms.JmsInUsingJCABinding">

					    <property name="jcaContainer" ref="jencks"/>

					    <property name="activationSpec">
					      <bean class="org.apache.activemq.ra.ActiveMQActivationSpec">
					        <property name="destination" value="TSB.CellHealth"/>
					        <property name="destinationType" value="javax.jms.Topic"/>
					      </bean>
					    </property>
					  </bean></sm:component>
					</sm:activationSpec>
					
					<sm:activationSpec componentName="TSB.LI.Role.Receiver" 
						service="tsb:TSB.LI.Role.Receiver" failIfNoDestinationEndpoint="false">
					  <sm:component><bean class="org.apache.servicemix.components.jms.JmsInUsingJCABinding">
					    <property name="jcaContainer" ref="jencks"/>
					    <property name="activationSpec">
					      <bean class="org.apache.activemq.ra.ActiveMQActivationSpec">
					        <property name="destination" value="TSB.LI.Role"/>
					        <property name="destinationType" value="javax.jms.Topic"/>
					      </bean>
					    </property>
					  </bean></sm:component>
					</sm:activationSpec>
					
					<!-- VDP Receiver component -->
					<sm:activationSpec componentName="TSB.VDP.Receiver" 
						service="tsb:TSB.VDP.Receiver"
						failIfNoDestinationEndpoint="false">
					  <sm:component><bean class="org.apache.servicemix.components.jms.JmsInUsingJCABinding">
					    <property name="jcaContainer" ref="jencks"/>
					    <property name="activationSpec">
					      <bean class="org.apache.activemq.ra.ActiveMQActivationSpec">
					        <property name="destination" value="TSB.VDP"/>
					        <property name="destinationType" value="javax.jms.Topic"/>
					      </bean>
					    </property>
					  </bean></sm:component>
					</sm:activationSpec>
					
					
					
					<sm:activationSpec componentName="TSB.Health.Sender"
						failIfNoDestinationEndpoint="false">
						<sm:component>
							<jms:component>
								<jms:endpoints>
									<jms:endpoint service="tsb:TSB.Health.Sender" 
										endpoint="endpoint" 
										role="provider" 
										connectionFactory="#jmsFactory" 
										jmsProviderDestinationName="TSB.Health" 
										destinationStyle="topic"/>
								</jms:endpoints>
							</jms:component>
						</sm:component>
					</sm:activationSpec>
					
					<sm:activationSpec componentName="TSB.PlatformHealth.Sender"
						failIfNoDestinationEndpoint="false">
						<sm:component>
							<jms:component>
								<jms:endpoints>
									<jms:endpoint service="tsb:TSB.PlatformHealth.Sender" 
										endpoint="endpoint" 
										role="provider" 
										connectionFactory="#jmsFactory" 
										jmsProviderDestinationName="TSB.PlatformHealth" 
										destinationStyle="topic"/>
								</jms:endpoints>
							</jms:component>
						</sm:component>
					</sm:activationSpec>
					
					<sm:activationSpec componentName="TSB.CellHealth.Sender"
						failIfNoDestinationEndpoint="false">
						<sm:component>
							<jms:component>
								<jms:endpoints>
									<jms:endpoint service="tsb:TSB.CellHealth.Sender" 
										endpoint="endpoint" 
										role="provider" 
										connectionFactory="#jmsFactory" 
										jmsProviderDestinationName="TSB.CellHealth" 
										destinationStyle="topic"/>
								</jms:endpoints>
							</jms:component>
						</sm:component>
					</sm:activationSpec>
					
					<sm:activationSpec componentName="TSB.LI.Role.Sender"
						failIfNoDestinationEndpoint="false">
						<sm:component>
							<jms:component>
								<jms:endpoints>
									<jms:endpoint service="tsb:TSB.LI.Role.Sender" 
										endpoint="endpoint" 
										role="provider" 
										connectionFactory="#jmsFactory" 
										jmsProviderDestinationName="TSB.LI.Role" 
										destinationStyle="topic"/>
								</jms:endpoints>
							</jms:component>
						</sm:component>
					</sm:activationSpec>

		
					
<!-- Logistical Registry Service - service needs to start early in the component
						lifecycle so subsequent services can register capabilities -->
					<sm:activationSpec id="lrservice" service="tsb:lrservice"
						failIfNoDestinationEndpoint="false">
						<sm:component>
							<bean class="com.raytheon.tsb.sqlr.SQLRegistryService"/>
						</sm:component>
						<sm:subscriptions>
							<sm:subscriptionSpec service="tsb:TSB.LI.Role.Receiver"/>
							<sm:subscriptionSpec service="tsb:TSB.LI.Caps.Receiver"/>
						</sm:subscriptions>
					</sm:activationSpec>

		
					
<!-- Mission Manager Service -->
					<sm:activationSpec id="mmservice" service="tsb:mmservice"
						failIfNoDestinationEndpoint="false">
						<sm:component>
							<bean class="com.raytheon.tsb.mm.MissionManagerService">
								<!-- This is how we will tell the plaftorm what it is-->
								<constructor-arg value="follower"/>
								<!--This is the known leader's IP-->
								<constructor-arg value="147.24.215.186" />
								<constructor-arg value="61616" />
							</bean>
						</sm:component>
						<sm:subscriptions>
							<sm:subscriptionSpec service="emaf:TSB.TaskStatus.Receiver"/>
						</sm:subscriptions>
					</sm:activationSpec>


						<!--
					       ~ Trace component to display exchanges to the console.
					       
								<sm:activationSpec componentName="trace" service="tsb:trace">
									<sm:component>
										<bean class="org.apache.servicemix.components.util.TraceComponent" />
									</sm:component>
								</sm:activationSpec>-->
    </sm:activationSpecs>
	
  </sm:container>
<!--
  <audit:jdbcAuditor container="#jbi" autoStart="false">
    <audit:dataSource> 
      <bean class="org.apache.derby.jdbc.EmbeddedDataSource">
        <property name="databaseName" value="servicemixDB"/>
        <property name="createDatabase" value="create"/>
      </bean>
    </audit:dataSource> 
  </audit:jdbcAuditor>

  <sm:dotViewService container="#jbi" autoStart="true" />

  <sm:logService container="#jbi" autoStart="true" refreshPeriod="60" />
-->

	<bean id="jmsFactory"
		class="org.apache.activemq.pool.PooledConnectionFactory">
		<property name="connectionFactory">
			<bean class="org.apache.activemq.ActiveMQConnectionFactory">
				<property name="brokerURL">
					<value>tcp://localhost:61616</value>
				</property>
			</bean>
		</property>
	</bean>
	
	<bean id="jencks" class="org.jencks.JCAContainer">

	  <!-- lets use the default configuration of work manager and transaction manager-->
	  <property name="bootstrapContext">
	    <bean class="org.jencks.factory.BootstrapContextFactoryBean">
	      <property name="threadPoolSize" value="25"/>
	      <property name="transactionManager" ref="transactionManager"/>
	    </bean>
	  </property>


	  <!-- the JCA Resource Adapter -->
	  <property name="resourceAdapter">
	    <bean id="activeMQResourceAdapter" class="org.apache.activemq.ra.ActiveMQResourceAdapter">
	      <property name="serverUrl" value="tcp://localhost:61616"/>
	    </bean>
	  </property>
	</bean>

	
	
</beans>

On May 2, 2007, at 1:04 AM, Guillaume Nodet wrote:

Finding all the classes defining the QName class can be done
using ClassLoader.getResources().  Then one could load then and
retrieve the serial UID using introspection i guess ...

On 5/2/07, Gert Vanthienen <[EMAIL PROTECTED]> wrote:

Guillaume,

A quick "Open Type..." in Eclipse also shows me that a lot of the jar
files we use in ServiceMix include their own javax.xml.namespace.QName,
so I suppose it wouldn't be that easy to ensure that only a single
variant of the class gets loaded at runtime either. Do you know of any tool to quickly examine the serialVersionUIDs of these classes in order
to get this user's problem solved?

Gert

Guillaume Nodet wrote:
> I think one problem may be in the serialization of the MessageExchange
> when
> using the JMS / JCA flows.  The exchange contains QName (for target
> service
> and interface) and may also contain other QNames (soap headers are
> stored in
> a map indexed by QNames).
> We can easily change the first ones to use plain strings ({xxx}yy
> format),
> but
> it will be much more difficult for the ones we do not control.
>
> On 5/2/07, Gert Vanthienen <[EMAIL PROTECTED]> wrote:
>>
>> Kit,
>>
>> Apparently, you are using multiple (and different) versions of the
QName
>> class.  If this solution is running on multiple JVMs, ensure that
>> they're all of the same version. If it isn't, could you send us the >> servicemix.xml file? Do you know which are the failing services, as
>> this might help us pinpoint the problem?
>>
>> Gert
>>
>> Kit Plummer wrote:
>> > Getting this a lot when running a few components on the latest
>> > apache-servicemix-fuse release:
>> >
>> > ERROR - JMSFlow - Error processing incoming
>> > broadcast message
>> > javax.jms.JMSException: Failed to build body from bytes. Reason:
>> > java.io.InvalidClassException: javax.xml.namespace.QName; local class
>> > incompatible: stream classdesc serialVersionUID =
4418622981026545151,
>> > local class serialVersionUID = -9120448754896609940
>> >         at
>> > org.apache.activemq.util.JMSExceptionSupport.create(
>> JMSExceptionSupport.java:33)
>> >
>> >         at
>> > org.apache.activemq.command.ActiveMQObjectMessage.getObject(
>> ActiveMQObjectMessage.java:172)
>> >
>> >         at
>> >
>> org.apache.servicemix.jbi.nmr.flow.jms.JMSFlow$3.onMessage (JMSFlow.java
>> :281)
>> >
>> >         at
>> > org.apache.activemq.ActiveMQMessageConsumer.dispatch(
>> ActiveMQMessageConsumer.java:841)
>> >
>> >         at
>> > org.apache.activemq.ActiveMQSessionExecutor.dispatch(
>> ActiveMQSessionExecutor.java:96)
>> >
>> >         at
>> > org.apache.activemq.ActiveMQSessionExecutor.iterate(
>> ActiveMQSessionExecutor.java:165)
>> >
>> >         at
>> > org.apache.activemq.thread.PooledTaskRunner.runTask(
>> PooledTaskRunner.java:111)
>> >
>> >         at
>> > org.apache.activemq.thread.PooledTaskRunner.access$100(
>> PooledTaskRunner.java:26)
>> >
>> >         at
>> >
>> org.apache.activemq.thread.PooledTaskRunner$1.run (PooledTaskRunner.java
>> :44)
>> >
>> >         at
>> >
>>
edu.emory.mathcs.backport.java.util.concurrent.ThreadPoolExecutor $Worker.runTask
>>
>> (ThreadPoolExecutor.java:665)
>> >
>> >         at
>> >
>>
edu.emory.mathcs.backport.java.util.concurrent.ThreadPoolExecutor $Worker.run
>>
>> (ThreadPoolExecutor.java:690)
>> >
>> >         at java.lang.Thread.run(Thread.java:619)
>> > Caused by: java.io.InvalidClassException: javax.xml.namespace.QName;
>> > local class incompatible: stream classdesc serialVersionUID =
>> > 4418622981026545151, local class serialVersionUID =
>> -9120448754896609940
>> >         at
>> > java.io.ObjectStreamClass.initNonProxy(ObjectStreamClass.java: 562)
>> >         at
>> >
>> java.io.ObjectInputStream.readNonProxyDesc (ObjectInputStream.java:1583)
>> >         at
>> > java.io.ObjectInputStream.readClassDesc (ObjectInputStream.java:1496)
>> >         at
>> > java.io.ObjectInputStream.readOrdinaryObject (ObjectInputStream.java
>> :1732)
>> >         at
>> > java.io.ObjectInputStream.readObject0(ObjectInputStream.java: 1329)
>> >         at
>> >
>> java.io.ObjectInputStream.defaultReadFields(ObjectInputStream.java
:1945)
>> >         at
>> > java.io.ObjectInputStream.readSerialData (ObjectInputStream.java:1869)
>> >         at
>> > java.io.ObjectInputStream.readOrdinaryObject (ObjectInputStream.java
>> :1753)
>> >         at
>> > java.io.ObjectInputStream.readObject0(ObjectInputStream.java: 1329)
>> >         at
>> >
>> java.io.ObjectInputStream.defaultReadFields(ObjectInputStream.java
:1945)
>> >         at
>> > java.io.ObjectInputStream.readSerialData (ObjectInputStream.java:1869)
>> >         at
>> > java.io.ObjectInputStream.readOrdinaryObject (ObjectInputStream.java
>> :1753)
>> >         at
>> > java.io.ObjectInputStream.readObject0(ObjectInputStream.java: 1329)
>> >         at
>> > java.io.ObjectInputStream.readObject(ObjectInputStream.java:351)
>> >         at
>> > org.apache.activemq.command.ActiveMQObjectMessage.getObject(
>> ActiveMQObjectMessage.java:166)
>> >
>> >         ... 10 more
>> >
>> > Should I attach my servicemix.xml?
>> >
>> > Kit
>> >
>>
>>
>
>




--
Cheers,
Guillaume Nodet
------------------------
Principal Engineer, IONA
Blog: http://gnodet.blogspot.com/

Reply via email to