i made a sample based on servicemix-web examples(ships with
servicemix3.1-incubating)

i use spring to set the JBI container, and HTTP-BC(servicemix-http), so i
can start up it use mvn jetty:run just like servicemix-web examples.

in another jvm , i start up servicemix(as standalone) where i put my sample
service. i suppose to use http-bc(soap) to connect together.

flow like this :
web(servlet) -> http-bc(provider, same jvm to servlet) -> http-bc(consumer,
standalone servicemix) then back to.

but i always get error(no response) at 33 times. From the service-http
document i knew the service-http's maxConnectionsPerHost is 32, so i
get error at 33 times. cause every time, the connection cannot be
released...

like this error log, this log viewed when i shutdown the jetty.(notice the
exchage's in is null , why?)

===========================================================
WARN  - HttpConnection                 - HttpConnectionManager is null. 
Connection cannot be released.
ERROR - HttpComponent                  - Error processing exchange InOut[
  id: ID:ngofcl0256-2482-1181201890140-36:0
  status: Active
  role: provider
  service: {http://mysample/service1}findAggregator1
  endpoint: endpoint
  operation: myOperation
  in: null
]
java.lang.IllegalStateException: Connection factory has been shutdown.
        at
org.apache.commons.httpclient.MultiThreadedHttpConnectionManager.doGe
tConnection(MultiThreadedHttpConnectionManager.java:456)
        at
org.apache.commons.httpclient.MultiThreadedHttpConnectionManager.getC
onnectionWithTimeout(MultiThreadedHttpConnectionManager.java:394)
        at
org.apache.commons.httpclient.HttpMethodDirector.executeMethod(HttpMe
thodDirector.java:152)
        at
org.apache.commons.httpclient.HttpClient.executeMethod(HttpClient.jav
a:396)
        at
org.apache.commons.httpclient.HttpClient.executeMethod(HttpClient.jav
a:346)
        at
org.apache.servicemix.http.processors.ProviderProcessor.process(Provi
derProcessor.java:168)
        at
org.apache.servicemix.common.AsyncBaseLifeCycle.doProcess(AsyncBaseLi
feCycle.java:489)
        at
org.apache.servicemix.common.AsyncBaseLifeCycle.processExchange(Async
BaseLifeCycle.java:441)
        at
org.apache.servicemix.common.BaseLifeCycle.onMessageExchange(BaseLife
Cycle.java:46)
        at
org.apache.servicemix.jbi.messaging.DeliveryChannelImpl.processInBoun
d(DeliveryChannelImpl.java:593)
        at
org.apache.servicemix.jbi.nmr.flow.AbstractFlow.doRouting(AbstractFlo
w.java:174)
        at
org.apache.servicemix.jbi.nmr.flow.seda.SedaFlow.doRouting(SedaFlow.j
ava:176)
        at
org.apache.servicemix.jbi.nmr.flow.seda.SedaQueue$1.run(SedaQueue.jav
a:134)
        at
edu.emory.mathcs.backport.java.util.concurrent.ThreadPoolExecutor$Wor
ker.runTask(ThreadPoolExecutor.java:665)
        at
edu.emory.mathcs.backport.java.util.concurrent.ThreadPoolExecutor$Wor
ker.run(ThreadPoolExecutor.java:690)
        at java.lang.Thread.run(Thread.java:619)
ERROR - HttpComponent                  - Error setting exchange status to
ERROR
javax.jbi.messaging.MessagingException: DeliveryChannel{servicemix-http} has
bee
n closed.
        at
org.apache.servicemix.jbi.messaging.DeliveryChannelImpl.checkNotClose
d(DeliveryChannelImpl.java:138)
        at
org.apache.servicemix.jbi.messaging.DeliveryChannelImpl.send(Delivery
ChannelImpl.java:408)
        at
org.apache.servicemix.common.BaseLifeCycle.onMessageExchange(BaseLife
Cycle.java:58)
        at
org.apache.servicemix.jbi.messaging.DeliveryChannelImpl.processInBoun
d(DeliveryChannelImpl.java:593)
        at
org.apache.servicemix.jbi.nmr.flow.AbstractFlow.doRouting(AbstractFlo
w.java:174)
        at
org.apache.servicemix.jbi.nmr.flow.seda.SedaFlow.doRouting(SedaFlow.j
ava:176)
        at
org.apache.servicemix.jbi.nmr.flow.seda.SedaQueue$1.run(SedaQueue.jav
a:134)
        at
edu.emory.mathcs.backport.java.util.concurrent.ThreadPoolExecutor$Wor
ker.runTask(ThreadPoolExecutor.java:665)
        at
edu.emory.mathcs.backport.java.util.concurrent.ThreadPoolExecutor$Wor
ker.run(ThreadPoolExecutor.java:690)
        at java.lang.Thread.run(Thread.java:619)
WARN  - ClientFactory                  - Cound not stop ClientFactory:
javax.nam
ing.NamingException: This context is immutable
INFO  - JBIContainer                   - ServiceMix JBI Container
(ServiceMix) stopped
2007-06-07 16:38:57.725::INFO:  Shutdown hook complete
[INFO] Jetty server exiting.
============================================================

and my spring's applicationContext.xml is:

<sm:container id="jbi"
      rootDir="#rootDir"
      installationDirPath="#installDir"
      deploymentDirPath="#deployDir"
                  monitorInstallationDirectory="true" 
      transactionManager="#transactionManager"
      >

    <sm:activationSpecs>

      <!-- START SNIPPET: http -->
      <sm:activationSpec componentName="servicemix-http">
        <sm:component>
          <http:component>
           <http:configuration managed="true" />
            <http:endpoints>
              <http:endpoint service="psv1:findAggregator1"
                             endpoint="endpoint"
                             role="provider"
                             locationURI="http://0.0.0.0:8192/sample/";
                             soap="true" 
                            
defaultMep="http://www.w3.org/2004/08/wsdl/in-out"; />
            </http:endpoints>
          </http:component>
        </sm:component>
      </sm:activationSpec>
      <!-- END SNIPPET: http -->
    </sm:activationSpecs>
  </sm:container>

  <bean id="transactionManager"
class="org.jencks.factory.TransactionManagerFactoryBean"/>

Any ideas ?? 

thanks.
best regards.
-- 
View this message in context: 
http://www.nabble.com/question-about-SOAP-through-http-bc-...-tf3882428s12049.html#a11003755
Sent from the ServiceMix - User mailing list archive at Nabble.com.

Reply via email to