« Return to Thread: Spring TCP Endpoint Does Not Start

Re: Spring TCP Endpoint Does Not Start

by Tom Purcell :: Rate this Message:

Reply to Author | View in Thread

Okay

I've stripped down the configs to just the essentials. I have three cases. All three have a connector and single inbound endpoint.
Case1 - Good old fashion mule-config.xml - Deploys and starts connections
Case2 - Spring with autowire - Does not deploy
Case3 - Spring without autowire - Deploys and does not start connections

Details follow. Any help would be apprectiated.

Thanks
Tom
 
If I run with this configuration using MuleXmlConfigurationBuilder as the builder:
<?xml version="1.0" encoding="UTF-8"?>
  <!DOCTYPE mule-configuration PUBLIC "-//MuleSource //DTD mule-configuration XML V1.0//EN"
  "http://mule.mulesource.org/dtds/mule-configuration.dtd">

<mule-configuration id="Broker_Mule" version="1.0">
  <connector name="TcpConnector" className="org.mule.providers.tcp.TcpConnector">
    <properties>
      <property name="tcpProtocolClassName" value="org.mule.providers.tcp.protocols.MuleMessageProtocol" />
    </properties>
    <connection-strategy className="org.mule.providers.SimpleRetryConnectionStrategy">
      <properties>
        <property name="retryCount" value="3" />
        <property name="frequency" value="2000" />
      </properties>
    </connection-strategy>
  </connector>

  <model name="EmployeeServiceModel">
    <mule-descriptor name="createEmployeeService60772" implementation="org.mule.components.simple.BridgeComponent">
      <inbound-router>
        <endpoint name="TcpcreateEmployeeService60772"
          address="tcp://localhost:60772/tcpcreateEmployeeService60772?method=createEmployee" connector="TcpConnector">
        </endpoint>
      </inbound-router>
    </mule-descriptor>
  </model>
</mule-configuration>

I endpoint connection get created and I can connect (see straightMuleConnects.log).
straightMuleConnects.log

If I run with this and the SpringConfigurationBuilder:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN" "http://www.springframework.org/dtd/spring-beans.dtd">
<beans>
  <bean id="muleManager" class="org.mule.extras.spring.config.AutowireUMOManagerFactoryBean" />

  <bean id="muleNameProcessor" class="org.mule.extras.spring.config.MuleObjectNameProcessor" />

  <bean id="tcpConnector" name="tcpConnector" class="org.mule.providers.tcp.TcpConnector">
    <property name="tcpProtocolClassName">
      <value>org.mule.providers.tcp.protocols.MuleMessageProtocol</value>
    </property>
    <property name="connectionStrategy">
      <bean id="connectionStrategy" class="org.mule.providers.SimpleRetryConnectionStrategy">
        <property name="retryCount">
          <value>3</value>
        </property>
        <property name="frequency">
          <value>2000</value>
        </property>
      </bean>
    </property>
  </bean>

  <bean class="org.mule.impl.MuleDescriptor" name="createEmployeeService60772" id="createEmployeeService60772">
    <property name="implementation">
      <value>org.mule.components.simple.BridgeComponent</value>
    </property>
    <property name="inboundEndpoint">
      <bean class="org.mule.impl.endpoint.MuleEndpoint" name="tcpCreateEmployeeService60772"
        id="tcpCreateEmployeeService60772">
        <property name="endpointURI">
          <bean class="org.mule.impl.endpoint.MuleEndpointURI" id="muleEndpointUriCreateEmployeeService60772">
            <constructor-arg index="0" type="java.lang.String">
              <value>tcp://localhost:60772/tcpCreateEmployeeService60772?method=createEmployee</value>
            </constructor-arg>
          </bean>
        </property>
        <property name="connector">
          <ref local="tcpConnector" />
        </property>
      </bean>
    </property>
  </bean>
</beans>

Mule does not deploy. It throws an exception (see "muleManagerNoLoad.log" for full log):
ModelServiceNotFoundException: META-INF/services/org/mule/models/jca
muleManagerNoLoad.log

If I run with this (no muleManager defined) and the SpringConfigurationBuilder:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN" "http://www.springframework.org/dtd/spring-beans.dtd">
<beans>
  <bean id="muleNameProcessor" class="org.mule.extras.spring.config.MuleObjectNameProcessor" />

  <bean id="tcpConnector" name="tcpConnector" class="org.mule.providers.tcp.TcpConnector">
    <property name="tcpProtocolClassName">
      <value>org.mule.providers.tcp.protocols.MuleMessageProtocol</value>
    </property>
    <property name="connectionStrategy">
      <bean id="connectionStrategy" class="org.mule.providers.SimpleRetryConnectionStrategy">
        <property name="retryCount">
          <value>3</value>
        </property>
        <property name="frequency">
          <value>2000</value>
        </property>
      </bean>
    </property>
  </bean>

  <bean class="org.mule.impl.MuleDescriptor" name="createEmployeeService60772" id="createEmployeeService60772">
    <property name="implementation">
      <value>org.mule.components.simple.BridgeComponent</value>
    </property>
    <property name="inboundEndpoint">
      <bean class="org.mule.impl.endpoint.MuleEndpoint" name="tcpCreateEmployeeService60772"
        id="tcpCreateEmployeeService60772">
        <property name="endpointURI">
          <bean class="org.mule.impl.endpoint.MuleEndpointURI" id="muleEndpointUriCreateEmployeeService60772">
            <constructor-arg index="0" type="java.lang.String">
              <value>tcp://localhost:60772/tcpCreateEmployeeService60772?method=createEmployee</value>
            </constructor-arg>
          </bean>
        </property>
        <property name="connector">
          <ref local="tcpConnector" />
        </property>
      </bean>
    </property>
  </bean>
</beans>

Mule deploys but does not stert the connections:

deployNoConnection.log



Andrew Perepelytsya wrote:
Tom,

What about Weblogic RMI? The reasoning is very simple. Any extra effort to
run (or take a look) at the case automatically reduces chances of it being
reviewed at all. I do not mean your specific case, yours is easier, but in
general. Make it painless, and get better results in return.

Andrew

On 5/29/07, Tom Purcell <tpurcell@chariotsolutions.com> wrote:
>
>
> Andrew
>
> I'm using 1.4.0. As for the bare minimum, its pretty sparse now. All I
> have
> is a connector, an implmentation and a inbound endpoint.
>
> Thanks
> Tom
>
>

 « Return to Thread: Spring TCP Endpoint Does Not Start