6 Replies Latest reply on Mar 21, 2013 3:13 AM by Jan van de klok

    Newbie needs help!

    Jan van de klok Newbie

      Hi,   I'm new to switchyard and I am trying to solve a simple problem with switchyard.

       

      I have an existing wsdl    that is used for sinding messages between our application and a custom written broker. I want to place switchyard between these 2 components and

      intercept some messages to do some extra actions before passing them on the the custom written broker.

       

      I've looked into the quickstart samples and started to leran how things are done in switch yard.

       

      I tried several variants for my solution but keep running into exceptions that I don't understand (at least not what mis-confuguration or other stupidities that led up to that exception).

       

      I  defined an incomming wsdl soap service based on my existing WSDL, made a Camel Java component that should check the operationName of the message and depending on the operationName value do somthing extra (invoke another component that write info to the database) and then pass the message to an outgoing service based on the same existing WSDL. Ther Camel xml routing component just has this dummy rule:

       

      <?xml version="1.0" encoding="ASCII"?>

      <route xmlns="http://camel.apache.org/schema/spring">

        <from uri="switchyard://kva50"/>

        <log message="kva50 - message received: ${body}"/>

      </route>

       

      In the camel component I specified a  "from/when/to" construct to route the message, but I keep getting warnings stating the there are  "Unbound Operation: Cannot resolve operation "vchmsg34" on target." for each operation in my WSDL.

       

      When trying to deploy the routing , I get the following exception:

       

      ERROR [org.jboss.msc.service.fail] (MSC service thread 1-8) MSC00001: Failed to start service jboss.deployment.unit."ZaakSysteem-0.0.1-SNAPSHOT.jar".SwitchYardService: org.jboss.msc.service.StartException in service jboss.deployment.unit."ZaakSysteem-0.0.1-SNAPSHOT.jar".SwitchYardService: java.util.NoSuchElementException

          at org.switchyard.as7.extension.services.SwitchYardService.start(SwitchYardService.java:85)

          at org.jboss.msc.service.ServiceControllerImpl$StartTask.startService(ServiceControllerImpl.java:1811) [jboss-msc-1.0.2.GA.jar:1.0.2.GA]

          at org.jboss.msc.service.ServiceControllerImpl$StartTask.run(ServiceControllerImpl.java:1746) [jboss-msc-1.0.2.GA.jar:1.0.2.GA]

          at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145) [rt.jar:1.7.0_17]

          at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615) [rt.jar:1.7.0_17]

          at java.lang.Thread.run(Thread.java:722) [rt.jar:1.7.0_17]

      Caused by: java.util.NoSuchElementException

          at java.util.HashMap$HashIterator.nextEntry(HashMap.java:897) [rt.jar:1.7.0_17]

          at java.util.HashMap$ValueIterator.next(HashMap.java:922) [rt.jar:1.7.0_17]

          at org.switchyard.component.soap.util.WSDLUtil.getService(WSDLUtil.java:181)

          at org.switchyard.component.soap.OutboundHandler.start(OutboundHandler.java:82)

          at org.switchyard.deploy.internal.Deployment.deployReferenceBindings(Deployment.java:283)

          at org.switchyard.deploy.internal.Deployment.start(Deployment.java:139)

       

      I have no clue (the exception provides no further information) on what exactly it is looking for that isn't there.

       

      Could some one point me the into the right direction?

       

      Regards,

       

      Jan van de Klok

       

      Below is my switchyard.xml content:

       

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

      <switchyard xmlns="urn:switchyard-config:switchyard:1.0" xmlns:bean="urn:switchyard-component-bean:config:1.0" xmlns:camel="urn:switchyard-component-camel:config:1.0" xmlns:sca="http://docs.oasis-open.org/ns/opencsa/sca/200912" xmlns:soap="urn:switchyard-component-soap:config:1.0" name="ZaakSysteem" targetNamespace="urn:nl.surf.zaak:ZaakSysteem:1.0">

        <sca:composite name="ZaakSysteem" targetNamespace="urn:nl.surf.zaak:ZaakSysteem:1.0">

          <sca:service name="Kva50In" promote="KvaRouting/kva50">

            <sca:interface.wsdl interface="META-INF/Kva50Binding.wsdl#wsdl.porttype(kva50)"/>

            <soap:binding.soap>

              <soap:contextMapper/>

              <soap:messageComposer unwrapped="true"/>

              <soap:wsdl>META-INF/Kva50Binding.wsdl</soap:wsdl>

              <soap:wsdlPort>kva50Port</soap:wsdlPort>

              <soap:socketAddr>8080</soap:socketAddr>

              <soap:contextPath>MoKva</soap:contextPath>

              <soap:endpointAddress>http://localhost:8080/MoKva</soap:endpointAddress>

            </soap:binding.soap>

          </sca:service>

          <sca:reference name="Kva50Out" multiplicity="0..1" promote="KvaRouting/kva50">

            <sca:interface.wsdl interface="META-INF/Kva50Binding.wsdl#wsdl.porttype(kva50)"/>

            <soap:binding.soap>

              <soap:contextMapper/>

              <soap:messageComposer/>

              <soap:wsdl>META-INF/Kva50Binding.wsdl</soap:wsdl>

              <soap:wsdlPort>kva50Port</soap:wsdlPort>

              <soap:endpointAddress>http://10.0.12.26:8080/studielink-broker/SL5</soap:endpointAddress>

            </soap:binding.soap>

          </sca:reference>

          <sca:component name="KvaRouting">

            <camel:implementation.camel>

              <camel:xml path="kva50Route.xml"/>

            </camel:implementation.camel>

            <sca:reference name="kva50">

              <sca:interface.wsdl interface="META-INF/Kva50Binding.wsdl#wsdl.porttype(kva50)"/>

            </sca:reference>

            <sca:service name="kva50">

              <sca:interface.wsdl interface="META-INF/Kva50Binding.wsdl#wsdl.porttype(kva50)"/>

            </sca:service>

          </sca:component>

        </sca:composite>

        <domain>

          <handlers>

            <handler class="org.switchyard.handlers.MessageTrace" name="MessageTrace"/>

          </handlers>

        </domain>

      </switchyard>

        • 1. Re: Newbie needs help!
          Keith Babo Master

          I can reproduce this by removing all port definitions in a WSDL.  Does Kva50Binding.wsdl have a wsdl:port definition in it?  Our error message when encountering this issue could be a bit more helpful.

           

          BTW, I notice you use kva50 for the service and reference names in your KvaRouting service component.  I would advise against that as the kva50 reference will wire to the kva50 service and create a loop.  This will actually be addressed as part of a more comprehensive change between 0.8 and 1.0, but I would use different names for now to be safe.

          • 2. Re: Newbie needs help!
            Jan van de klok Newbie

            Hello Keith,

             

                Thanks for your reply.

            The original wsdl had a wsdl port definition in it. I did remove that because in the service definition bindings properties I have to specify a wsdl  and a port definition.

            Putting it back in did the trick!   No more org.jboss.msc.service.StartException !!

             

             

            It was my understanding that these bindings properties would replace the port definition in the wsdl.

            Can you explain to my why I have to define the port twice??

             

            I can't give you no more error message since switchyard does not give me any more error messages! Just the "Unbound Operation: Cannot resolve operation "vchmsg34" on target." for each operation in my WSDL in a stickey note on the canvas and the stack trace I  already put in my first question. Mayby switchyard should provide some more details on these errors.

             

            Unfortunaltly, I still run into errors, the "Unbound Operation: Cannot resolve operation "vchmsg34" on target."  are still there.

             

            sy_error_unbound.png

             

            Here are my curent wsdl , Camel routing  and switchyard xml:

            <?xml version='1.0'?>

            <definitions name='KVA50BrokerServices' targetNamespace='http://org.jboss.ws/httpbinding'

                        xmlns='http://schemas.xmlsoap.org/wsdl/'

                        xmlns:mime='http://schemas.xmlsoap.org/wsdl/mime/'

                        xmlns:tns='http://org.jboss.ws/httpbinding'

                        xmlns:http='http://schemas.xmlsoap.org/wsdl/http/'

                      

                        xmlns:xsd='http://www.w3.org/2001/XMLSchema'

                        xmlns:wsdlsoap="http://schemas.xmlsoap.org/wsdl/soap/"

                        xmlns:kva50="http://surf.nl/kva5/berichten"

                        >

             

              <import namespace="http://surf.nl/kva5/berichten" location="kva50.xsd" />

               

              <!-- $Revision: 1.6 $ -->

              <!-- vchmsg03: Bericht om een inschrijving door te geven, zolang de status niet bevestigd is door de instelling spreken we van een aanmelding -->

              <message name="vchmsg03">

                <part name="vchmsg03" element="kva50:vchmsg03"/>

              </message>

              <!-- vchmsg04: Bericht om de identiteit van de student te bevestigen, door GBA code of paspoort controle aan de balie -->

              <message name="vchmsg04">

                <part name="vchmsg04" element="kva50:vchmsg04"/>

              </message>

              <!-- vchmsg05: Bericht om wijzigingen in de persoonsgegevens van een student door te geven -->

              <message name="vchmsg05">

                <part name="vchmsg05" element="kva50:vchmsg05"/>

              </message>

              <!-- vchmsg06: Bericht om een adreswijziging door te geven -->

              <message name="vchmsg06">

                <part name="vchmsg06" element="kva50:vchmsg06"/>

              </message>

              <!-- vchmsg07: Bericht om vooropleidingen door te geven -->

              <message name="vchmsg07">

                <part name="vchmsg07" element="kva50:vchmsg07"/>

              </message>

              <!-- vchmsg08: Bericht om betaalgegevens door te geven voor een isncrhijving -->

              <message name="vchmsg08">

                <part name="vchmsg08" element="kva50:vchmsg08"/>

              </message>

              <!-- vchmsg10: Certificeren vooropleidingen -->

              <message name="vchmsg10">

                <part name="vchmsg10" element="kva50:vchmsg10"/>

              </message>

              <!-- vchmsg19: Bericht om aan andere instellingen door te geven dat collegegeld betaald of teruggestort is -->

              <message name="vchmsg19">

                <part name="vchmsg19" element="kva50:vchmsg19"/>

              </message>

              <!-- vchmsg20: Bericht om aan VCH het bedrag aan te betalen college geld door te geven, voor het zelf printen van de machtinging. -->

              <message name="vchmsg20">

                <part name="vchmsg20" element="kva50:vchmsg20"/>

              </message>

              <!-- vchmsg22: Bericht om mededeling naar VCH te sturen voor een student, behorende bij een inschrijving/aanmelding -->

              <message name="vchmsg22">

                <part name="vchmsg22" element="kva50:vchmsg22"/>

              </message>

              <!-- vchmsg25: Bericht van VCH naar een instelling om aan te geven dat een student zijn inschrijving wil verlengen naar het volgende studiejaar -->

              <message name="vchmsg25">

                <part name="vchmsg25" element="kva50:vchmsg25"/>

              </message>

              <!-- vchmsg30: Wijzigingen student id doorgeven (honummer) aan SIS -->

              <message name="vchmsg30">

                <part name="vchmsg30" element="kva50:vchmsg30"/>

              </message>

              <!-- vchmsg31: Bericht om wijzigingen in een inschrijving in het SIS aan VCH door te geven -->

              <message name="vchmsg31">

                <part name="vchmsg31" element="kva50:vchmsg31"/>

              </message>

              <!-- vchmsg34: Inschrijving vanuit SIS, apart bericht om studentnummer te verplichten -->

              <message name="vchmsg34">

                <part name="vchmsg34" element="kva50:vchmsg34"/>

              </message>

              <!-- vchmsg35: Bericht om een wijziging in een inschrijving vanuit VCH bij het SIS aan te vragen -->

              <message name="vchmsg35">

                <part name="vchmsg35" element="kva50:vchmsg35"/>

              </message>

              <!-- vchmsg37: Bericht om het overlijden van een student vanuit SIS door te geven aan Sl en andere SISen -->

              <message name="vchmsg37">

                <part name="vchmsg37" element="kva50:vchmsg37"/>

              </message>

              <!-- vchmsg39: Bericht om de status van een verzoek tot inschrijving in RASP (IB-G) door te geven aan studielink en SIS -->

              <message name="vchmsg39">

                <part name="vchmsg39" element="kva50:vchmsg39"/>

              </message>

              <message name="vchmsg47">

                <part name="vchmsg47" element="kva50:vchmsg47"/>

              </message>

              <message name="vchmsg48">

                <part name="vchmsg48" element="kva50:vchmsg48"/>

              </message>

              <!-- result: SOAP reply bericht = response wordt standaard als vchmsgxxResponse gestuurd -->

              <message name="response">

                <part name="response" element="kva50:response"/>

              </message>

             

               <message name="vchmsg03Response">

                <part name="response" element="kva50:vchmsg03Response"/>

              </message>

               <message name="vchmsg04Response">

                <part name="response" element="kva50:vchmsg04Response"/>

              </message>

               <message name="vchmsg05Response">

                <part name="response" element="kva50:vchmsg05Response"/>

              </message>

               <message name="vchmsg06Response">

                <part name="response" element="kva50:vchmsg06Response"/>

              </message>

               <message name="vchmsg07Response">

                <part name="response" element="kva50:vchmsg07Response"/>

              </message>

               <message name="vchmsg08Response">

                <part name="response" element="kva50:vchmsg08Response"/>

              </message>

               <message name="vchmsg10Response">

                <part name="response" element="kva50:vchmsg10Response"/>

              </message>

               <message name="vchmsg19Response">

                <part name="response" element="kva50:vchmsg19Response"/>

              </message>

               <message name="vchmsg20Response">

                <part name="response" element="kva50:vchmsg20Response"/>

              </message>

               <message name="vchmsg22Response">

                <part name="response" element="kva50:vchmsg22Response"/>

              </message>

               <message name="vchmsg25Response">

                <part name="response" element="kva50:vchmsg25Response"/>

              </message>

             

              <message name="vchmsg30Response">

                <part name="response" element="kva50:vchmsg30Response"/>

              </message>

              <message name="vchmsg31Response">

                <part name="response" element="kva50:vchmsg31Response"/>

              </message>

               <message name="vchmsg35Response">

                <part name="response" element="kva50:vchmsg35Response"/>

              </message>

               

               <message name="vchmsg34Response">

                <part name="response" element="kva50:vchmsg34Response"/>

              </message>

               <message name="vchmsg37Response">

                <part name="response" element="kva50:vchmsg37Response"/>

              </message>

               <message name="vchmsg39Response">

                <part name="response" element="kva50:vchmsg39Response"/>

              </message>

               <message name="vchmsg46Response">

                <part name="response" element="kva50:vchmsg46Response"/>

              </message>

               <message name="vchmsg47Response">

                <part name="response" element="kva50:vchmsg47Response"/>

              </message>

               <message name="vchmsg48Response">

                <part name="response" element="kva50:vchmsg48Response"/>

              </message>

              

             

             

              <portType name='kva50'>

               <operation name="vchmsg03">

                  <input message="tns:vchmsg03"/>

                  <output message="tns:vchmsg03Response"/>

                </operation>

              <operation name="vchmsg04">

                  <input message="tns:vchmsg04"/>

                  <output message="tns:vchmsg04Response"/>

                </operation>

                <operation name="vchmsg06">

                  <input message="tns:vchmsg06"/>

                  <output message="tns:vchmsg06Response"/>

                </operation>

                <operation name="vchmsg10">

                  <input message="tns:vchmsg10"/>

                  <output message="tns:vchmsg10Response"/>

                </operation>

                <operation name="vchmsg19">

                  <input message="tns:vchmsg19"/>

                  <output message="tns:vchmsg19Response"/>

                </operation>

                <operation name="vchmsg20">

                  <input message="tns:vchmsg20"/>

                  <output message="tns:vchmsg20Response"/>

                </operation>

                <operation name="vchmsg22">

                  <input message="tns:vchmsg22"/>

                  <output message="tns:vchmsg22Response"/>

                </operation>

                <operation name="vchmsg31">

                  <input message="tns:vchmsg31"/>

                  <output message="tns:vchmsg31Response"/>

                </operation>

                <operation name="vchmsg34">

                  <input message="tns:vchmsg34"/>

                  <output message="tns:vchmsg34Response"/>

                </operation>

                <operation name="vchmsg37">

                  <input message="tns:vchmsg37"/>

                  <output message="tns:vchmsg37Response"/>

                </operation>

                <operation name="vchmsg48">

                  <input message="tns:vchmsg48"/>

                  <output message="tns:vchmsg48Response"/>

                </operation>

             

              </portType>

               

              <binding name='kva50Binding' type='tns:kva50'>

                <http:binding verb='POST'/>

                <wsdlsoap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http"/>

                 <operation name="vchmsg03">

                  <wsdlsoap:operation soapAction="vchmsg03"/>

                  <input>

                    <wsdlsoap:body use="literal" namespace="http://surf.nl/kva5/berichten"/>

                  </input>

                  <output>

                    <wsdlsoap:body use="literal" namespace="http://surf.nl/kva5/berichten"/>

                  </output>

                </operation>

                <operation name="vchmsg04">

                  <wsdlsoap:operation soapAction="vchmsg04"/>

                  <input>

                    <wsdlsoap:body use="literal" namespace="http://surf.nl/kva5/berichten"/>

                  </input>

                  <output>

                    <wsdlsoap:body use="literal" namespace="http://surf.nl/kva5/berichten"/>

                  </output>

                </operation>

                <operation name="vchmsg06">

                  <wsdlsoap:operation soapAction="vchmsg06"/>

                  <input>

                    <wsdlsoap:body use="literal" namespace="http://surf.nl/kva5/berichten"/>

                  </input>

                  <output>

                    <wsdlsoap:body use="literal" namespace="http://surf.nl/kva5/berichten"/>

                  </output>

                </operation>

                <operation name="vchmsg10">

                  <wsdlsoap:operation soapAction="vchmsg10"/>

                  <input>

                    <wsdlsoap:body use="literal" namespace="http://surf.nl/kva5/berichten"/>

                  </input>

                  <output>

                    <wsdlsoap:body use="literal" namespace="http://surf.nl/kva5/berichten"/>

                  </output>

                </operation>

                <operation name="vchmsg19">

                  <wsdlsoap:operation soapAction="vchmsg19"/>

                  <input>

                    <wsdlsoap:body use="literal" namespace="http://surf.nl/kva5/berichten"/>

                  </input>

                  <output>

                    <wsdlsoap:body use="literal" namespace="http://surf.nl/kva5/berichten"/>

                  </output>

                </operation>

                <operation name="vchmsg20">

                  <wsdlsoap:operation soapAction="vchmsg20"/>

                  <input>

                    <wsdlsoap:body use="literal" namespace="http://surf.nl/kva5/berichten"/>

                  </input>

                  <output>

                    <wsdlsoap:body use="literal" namespace="http://surf.nl/kva5/berichten"/>

                  </output>

                </operation>

                <operation name="vchmsg22">

                  <wsdlsoap:operation soapAction="vchmsg22"/>

                  <input>

                    <wsdlsoap:body use="literal" namespace="http://surf.nl/kva5/berichten"/>

                  </input>

                  <output>

                    <wsdlsoap:body use="literal" namespace="http://surf.nl/kva5/berichten"/>

                  </output>

                </operation>

                <operation name="vchmsg31">

                  <wsdlsoap:operation soapAction="vchmsg31"/>

                  <input>

                    <wsdlsoap:body use="literal" namespace="http://surf.nl/kva5/berichten"/>

                  </input>

                  <output>

                    <wsdlsoap:body use="literal" namespace="http://surf.nl/kva5/berichten"/>

                  </output>

                </operation>

                <operation name="vchmsg34">

                  <wsdlsoap:operation soapAction="vchmsg34"/>

                  <input>

                    <wsdlsoap:body use="literal" namespace="http://surf.nl/kva5/berichten"/>

                  </input>

                  <output>

                    <wsdlsoap:body use="literal" namespace="http://surf.nl/kva5/berichten"/>

                  </output>

                </operation>

                <operation name="vchmsg37">

                  <wsdlsoap:operation soapAction="vchmsg37"/>

                  <input>

                    <wsdlsoap:body use="literal" namespace="http://surf.nl/kva5/berichten"/>

                  </input>

                  <output>

                    <wsdlsoap:body use="literal" namespace="http://surf.nl/kva5/berichten"/>

                  </output>

                </operation>

                <operation name="vchmsg48">

                  <wsdlsoap:operation soapAction="vchmsg48"/>

                  <input>

                    <wsdlsoap:body use="literal" namespace="http://surf.nl/kva5/berichten"/>

                  </input>

                  <output>

                    <wsdlsoap:body use="literal" namespace="http://surf.nl/kva5/berichten"/>

                  </output>

                </operation>

              </binding>

             

              

              <service name='kva50Service'>

                <port binding='tns:kva50Binding' name='kva50Port'>

                  <http:address location='http://localhost:8080/MoKva'/>

                </port>

              </service>

             

              

             

            </definitions>

             

            Camel routing

             

            <?xml version="1.0" encoding="ASCII"?>

            <route xmlns="http://camel.apache.org/schema/spring">

              <from uri="switchyard://Kva50In"/>

              <log message="kva50 - message received: ${body}"/>

            </route>

             

            Switchyard

             

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

            <switchyard xmlns="urn:switchyard-config:switchyard:1.0" xmlns:bean="urn:switchyard-component-bean:config:1.0" xmlns:camel="urn:switchyard-component-camel:config:1.0" xmlns:sca="http://docs.oasis-open.org/ns/opencsa/sca/200912" xmlns:soap="urn:switchyard-component-soap:config:1.0" name="ZaakSysteem" targetNamespace="urn:nl.surf.zaak:ZaakSysteem:1.0">

              <sca:composite name="ZaakSysteem" targetNamespace="urn:nl.surf.zaak:ZaakSysteem:1.0">

                <sca:service name="Kva50In" promote="KvaRouting/kva50">

                  <sca:interface.wsdl interface="META-INF/Kva50Binding.wsdl#wsdl.porttype(kva50)"/>

                  <soap:binding.soap>

                    <soap:contextMapper/>

                    <soap:messageComposer unwrapped="true"/>

                    <soap:wsdl>META-INF/Kva50Binding.wsdl</soap:wsdl>

                    <soap:wsdlPort>kva50Port</soap:wsdlPort>

                    <soap:socketAddr>8080</soap:socketAddr>

                    <soap:contextPath>MoKva</soap:contextPath>

                    <soap:endpointAddress>http://localhost:8080/MoKva</soap:endpointAddress>

                  </soap:binding.soap>

                </sca:service>

                <sca:reference name="Kva50Out" multiplicity="0..1" promote="KvaRouting/kva50">

                  <sca:interface.wsdl interface="META-INF/Kva50Binding.wsdl#wsdl.porttype(kva50)"/>

                  <soap:binding.soap>

                    <soap:contextMapper/>

                    <soap:messageComposer/>

                    <soap:wsdl>META-INF/Kva50Binding.wsdl</soap:wsdl>

                    <soap:wsdlPort>kva50Port</soap:wsdlPort>

                    <soap:endpointAddress>http://10.0.12.26:8080/studielink-broker/SL5</soap:endpointAddress>

                  </soap:binding.soap>

                </sca:reference>

                <sca:component name="KvaRouting">

                  <camel:implementation.camel>

                    <camel:xml path="META-INF/kva50Route.xml"/>

                  </camel:implementation.camel>

                  <sca:reference name="kva50">

                    <sca:interface.wsdl interface="META-INF/Kva50Binding.wsdl#wsdl.porttype(kva50)"/>

                  </sca:reference>

                  <sca:service name="kva50">

                    <sca:interface.wsdl interface="META-INF/Kva50Binding.wsdl#wsdl.porttype(kva50)"/>

                  </sca:service>

                </sca:component>

              </sca:composite>

              <domain>

                <handlers>

                  <handler class="org.switchyard.handlers.MessageTrace" name="MessageTrace"/>

                </handlers>

              </domain>

            </switchyard>

             

             

            Regards

             

            Jan

            • 3. Re: Newbie needs help!
              Keith Babo Master

               

               

              The original wsdl had a wsdl port definition in it. I did remove that because in the service definition bindings properties I have to specify a wsdl  and a port definition.

              Putting it back in did the trick!   No more org.jboss.msc.service.StartException !!

               

              This is a hole in our validation logic which will be fixed with this for 1.0:

              https://issues.jboss.org/browse/SWITCHYARD-1360

               

               

              It was my understanding that these bindings properties would replace the port definition in the wsdl.

              Can you explain to my why I have to define the port twice??

              The port definition in the WSDL provides a link to the WSDL binding definition(s) for you operations.  It is true that configuration on the SOAP gateway binding allows you to specify/override details of the WSDL, but the port definition is still necessary.

               

              I can't give you no more error message since switchyard does not give me any more error messages! Just the "Unbound Operation: Cannot resolve operation "vchmsg34" on target." for each operation in my WSDL in a stickey note on the canvas and the stack trace I  already put in my first question. Mayby switchyard should provide some more details on these errors.

               

              Unfortunaltly, I still run into errors, the "Unbound Operation: Cannot resolve operation "vchmsg34" on target."  are still there.

               

              The issue you are seeing in the screenshot is the product of editor validation.  Basically the editor is trying to detect configuration problems as part of project validation.  It seems like you have the necessary operations defined, so it's possible the editor is out of sync with the interface definitions in your project. One way to tell would be to deploy the app and see if there are errors.  If you can attach your entire project, we can import it and help debug if this is a project issue or not.

              • 4. Re: Newbie needs help!
                Rob Cernich Master

                Hey Jan,

                 

                Regarding the errors in the editor, a couple of steps to take:

                1. Ensure "Auto-build" is enabled for your workspace, or
                2. Build the project (Project->Build Project)
                3. Manually validate the switchyard.xml file (right-click the file, "Validate")

                 

                It would also be interesting to know if there are any SwitchYard related errors in the Eclipse log (Window->Show View->Error Log)

                 

                Based on the information you posted above, I don't know why the validator would be balking.  When I get some time, I'll try to recreate your project using the above info and see if there's anything funky going on in the validator.

                 

                Rob

                • 5. Re: Newbie needs help!
                  Jan van de klok Newbie

                  Thanks guys for you support. I'm busy with other things right now, but i''l get back to this soon.

                  Jan

                  • 6. Re: Newbie needs help!
                    Jan van de klok Newbie

                    Rob, you are right.  It was an editor sync problem.  Project-> Build project made the editor errors go away!  The auto build was off, turned it on now. Thanks!