6 Replies Latest reply on Feb 14, 2006 1:20 PM by thomas.diesler

    JBoss4.04RC.. new stack

    necrosus

      I am trying to build 4.0.4RC from source and use the new JBossWS stack

      I checked out from source with the tag below

      cvs co -r Branch_4_0 jboss-4.0.x
      cd jboss-4.04RC
      cd build
      ./build.sh

      I then build the JBossWS stack and deploy with

      ant deploy-jbossws

      Then i tried to add in ejb3.0. I did this following the instructions here

      http://docs.jboss.com/ejb3/app-server/tutorial/installing.html

      However, when i try and try to start the default server i get this exception..

      12:31:17,640 WARN [ServiceController] Problem starting service jboss.ws:service=WebServiceDeployerEJB3
      java.lang.IllegalArgumentException: Unable to find operation addOperationInterceptor(org.jboss.mx.interceptor.Interceptor)

      Any ideas what is causing this?

        • 1. Re: JBoss4.04RC.. new stack
          thomas.diesler
          • 2. Re: JBoss4.04RC.. new stack
            necrosus

             

            "thomas.diesler@jboss.com" wrote:
            http://jira.jboss.com/jira/browse/JBWS-680


            Thanx for quick response :)

            So does this mean that at the moment it is not possible to run jbossws with ejb3.0 in JBoss4.0.4RC?

            • 3. Re: JBoss4.04RC.. new stack
              thomas.diesler
              • 4. Re: JBoss4.04RC.. new stack
                necrosus

                I assume your answer was a yes then.

                I am back to running JBoss4.0.4RC with Java 1.4 and EJB 2.1. I have this working correctly. I do have one small issue which i would be grateful for any suggestions about. I know this issue is not just a JBoss issue. Basically with the new stack, I have found that my Axis java client works fine but my Axis C++ client does not.


                The Axis java client sends this request

                <soapenv:Envelope xmlns:soapenv='http://schemas.xmlsoap.org/soap/envelope/' xmlns:xsd='http://www.w3.org/2001/XMLSchema' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance'>
                 <soapenv:Header/>
                 <soapenv:Body>
                 <sendCommand xmlns='http://com.fbbt.matador.communication.interfaces/types'>
                 <VCommandMessage_1 xmlns=''>
                 <destinationId>database</destinationId>
                 <destinationType xsi:nil='true'/>
                 <messageType>001</messageType>
                 <sourceId xsi:nil='true'/>
                 <sourceType xsi:nil='true'/>
                 <command xsi:nil='true'/>
                 <seatAddress>192.168.0.57_kris</seatAddress>
                 <username>fbbt</username>
                 <alertId xsi:nil='true'/>
                 <attribute xsi:nil='true'/>
                 <auditDate xsi:nil='true'/>
                 <deviceId xsi:nil='true'/>
                 <exitMode xsi:nil='true'/>
                 <holdRelease xsi:nil='true'/>
                 <operatorNotes xsi:nil='true'/>
                 <password>dsfdsfsdf</password>
                 <pathId xsi:nil='true'/>
                 <pathSequence xsi:nil='true'/>
                 <portId xsi:nil='true'/>
                 <portType xsi:nil='true'/>
                 <positionIndicator xsi:nil='true'/>
                 <serviceId xsi:nil='true'/>
                 <timestamp xsi:nil='true'/>
                 <usernameViewing xsi:nil='true'/>
                 </VCommandMessage_1>
                 </sendCommand>
                 </soapenv:Body>
                </soapenv:Envelope>
                


                The Axis C++ client sends this


                <SOAP-ENV:Envelope xmlns:SOAP-ENV='http://schemas.xmlsoap.org/soap/envelope/' xmlns:xsd='http://www.w3.org/2001/XMLSchema' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance'>
                 <SOAP-ENV:Header/>
                 <SOAP-ENV:Body>
                 <ns1:sendCommand xmlns:ns1='http://com.fbbt.matador.communication.interfaces/types'>
                
                 <VCommandMessage_1>
                 <ns1:destinationId xmlns:ns1='http://com.fbbt.matador.communication.interfaces/types'>database</ns1:destinationId>
                
                 <ns1:destinationType xmlns:ns1='http://com.fbbt.matador.communication.interfaces/types' xsi:nil='true'/>
                
                 <ns1:messageType xmlns:ns1='http://com.fbbt.matador.communication.interfaces/types'>001</ns1:messageType>
                
                 <ns1:sourceId xmlns:ns1='http://com.fbbt.matador.communication.interfaces/types' xsi:nil='true'/>
                
                 <ns1:sourceType xmlns:ns1='http://com.fbbt.matador.communication.interfaces/types' xsi:nil='true'/>
                
                 <ns1:command xmlns:ns1='http://com.fbbt.matador.communication.interfaces/types' xsi:nil='true'/>
                
                 <ns1:seatAddress xmlns:ns1='http://com.fbbt.matador.communication.interfaces/types'>kris_IBC-JBOSS_192.168.0.30_24070</ns1:seatAddress>
                
                 <ns1:username xmlns:ns1='http://com.fbbt.matador.communication.interfaces/types'>fbbt</ns1:username>
                
                 <ns1:alertId xmlns:ns1='http://com.fbbt.matador.communication.interfaces/types' xsi:nil='true'/>
                
                 <ns1:attribute xmlns:ns1='http://com.fbbt.matador.communication.interfaces/types' xsi:nil='true'/>
                
                 <ns1:auditDate xmlns:ns1='http://com.fbbt.matador.communication.interfaces/types' xsi:nil='true'/>
                
                 <ns1:deviceId xmlns:ns1='http://com.fbbt.matador.communication.interfaces/types' xsi:nil='true'/>
                
                 <ns1:exitMode xmlns:ns1='http://com.fbbt.matador.communication.interfaces/types' xsi:nil='true'/>
                
                 <ns1:holdRelease xmlns:ns1='http://com.fbbt.matador.communication.interfaces/types' xsi:nil='true'/>
                
                 <ns1:operatorNotes xmlns:ns1='http://com.fbbt.matador.communication.interfaces/types' xsi:nil='true'/>
                
                 <ns1:password xmlns:ns1='http://com.fbbt.matador.communication.interfaces/types'>sdfsdfdsf</ns1:password>
                
                 <ns1:pathId xmlns:ns1='http://com.fbbt.matador.communication.interfaces/types' xsi:nil='true'/>
                
                 <ns1:pathSequence xmlns:ns1='http://com.fbbt.matador.communication.interfaces/types' xsi:nil='true'/>
                
                 <ns1:portId xmlns:ns1='http://com.fbbt.matador.communication.interfaces/types' xsi:nil='true'/>
                
                 <ns1:portType xmlns:ns1='http://com.fbbt.matador.communication.interfaces/types' xsi:nil='true'/>
                
                 <ns1:positionIndicator xmlns:ns1='http://com.fbbt.matador.communication.interfaces/types' xsi:nil='true'/>
                
                 <ns1:serviceId xmlns:ns1='http://com.fbbt.matador.communication.interfaces/types' xsi:nil='true'/>
                
                 <ns1:timestamp xmlns:ns1='http://com.fbbt.matador.communication.interfaces/types' xsi:nil='true'/>
                
                 <ns1:usernameViewing xmlns:ns1='http://com.fbbt.matador.communication.interfaces/types' xsi:nil='true'/>
                
                 </VCommandMessage_1>
                
                 </ns1:sendCommand>
                 </SOAP-ENV:Body>
                </SOAP-ENV:Envelope>
                



                The relevant jaxrpc mapping is like this

                <java-xml-type-mapping>
                <java-type>com.fbbt.matador.access.types.VCommandMessage</java-type>
                <root-type-qname xmlns:typeNS="http://com.fbbt.matador.communication.interfaces/types">typeNS:VCommandMessage</root-type-qname>
                <qname-scope>complexType</qname-scope>
                <variable-mapping>
                <java-variable-name>destinationId</java-variable-name>
                <xml-element-name>destinationId</xml-element-name>
                </variable-mapping>
                <variable-mapping>
                <java-variable-name>destinationType</java-variable-name>
                <xml-element-name>destinationType</xml-element-name>
                </variable-mapping>
                <variable-mapping>
                <java-variable-name>messageType</java-variable-name>
                <xml-element-name>messageType</xml-element-name>
                </variable-mapping>
                <variable-mapping>
                <java-variable-name>sourceId</java-variable-name>
                <xml-element-name>sourceId</xml-element-name>
                </variable-mapping>
                <variable-mapping>
                <java-variable-name>sourceType</java-variable-name>
                <xml-element-name>sourceType</xml-element-name>
                </variable-mapping>
                <variable-mapping>
                <java-variable-name>command</java-variable-name>
                <xml-element-name>command</xml-element-name>
                </variable-mapping>
                <variable-mapping>
                <java-variable-name>seatAddress</java-variable-name>
                <xml-element-name>seatAddress</xml-element-name>
                </variable-mapping>
                <variable-mapping>
                <java-variable-name>username</java-variable-name>
                <xml-element-name>username</xml-element-name>
                </variable-mapping>
                <variable-mapping>
                <java-variable-name>alertId</java-variable-name>
                <xml-element-name>alertId</xml-element-name>
                </variable-mapping>
                <variable-mapping>
                <java-variable-name>attribute</java-variable-name>
                <xml-element-name>attribute</xml-element-name>
                </variable-mapping>
                <variable-mapping>
                <java-variable-name>auditDate</java-variable-name>
                <xml-element-name>auditDate</xml-element-name>
                </variable-mapping>
                <variable-mapping>
                <java-variable-name>deviceId</java-variable-name>
                <xml-element-name>deviceId</xml-element-name>
                </variable-mapping>
                <variable-mapping>
                <java-variable-name>exitMode</java-variable-name>
                <xml-element-name>exitMode</xml-element-name>
                </variable-mapping>
                <variable-mapping>
                <java-variable-name>holdRelease</java-variable-name>
                <xml-element-name>holdRelease</xml-element-name>
                </variable-mapping>
                <variable-mapping>
                <java-variable-name>operatorNotes</java-variable-name>
                <xml-element-name>operatorNotes</xml-element-name>
                </variable-mapping>
                <variable-mapping>
                <java-variable-name>password</java-variable-name>
                <xml-element-name>password</xml-element-name>
                </variable-mapping>
                <variable-mapping>
                <java-variable-name>pathId</java-variable-name>
                <xml-element-name>pathId</xml-element-name>
                </variable-mapping>
                <variable-mapping>
                <java-variable-name>pathSequence</java-variable-name>
                <xml-element-name>pathSequence</xml-element-name>
                </variable-mapping>
                <variable-mapping>
                <java-variable-name>portId</java-variable-name>
                <xml-element-name>portId</xml-element-name>
                </variable-mapping>
                <variable-mapping>
                <java-variable-name>portType</java-variable-name>
                <xml-element-name>portType</xml-element-name>
                </variable-mapping>
                <variable-mapping>
                <java-variable-name>positionIndicator</java-variable-name>
                <xml-element-name>positionIndicator</xml-element-name>
                </variable-mapping>
                <variable-mapping>
                <java-variable-name>serviceId</java-variable-name>
                <xml-element-name>serviceId</xml-element-name>
                </variable-mapping>
                <variable-mapping>
                <java-variable-name>timestamp</java-variable-name>
                <xml-element-name>timestamp</xml-element-name>
                </variable-mapping>
                <variable-mapping>
                <java-variable-name>usernameViewing</java-variable-name>
                <xml-element-name>usernameViewing</xml-element-name>
                </variable-mapping>
                </java-xml-type-mapping>
                


                On the JBoss server side the top request is processed with no problems but with the secornd request the following error is thrown

                Caused by: org.jboss.xb.binding.JBossXBRuntimeException: Requested element {http://com.fbbt.matador.communication.interfaces/types}destinationId is not allowed in this position in the sequence. The next element should be destinationId
                 at org.jboss.xb.binding.sunday.unmarshalling.SequenceBinding$1.startElement(SequenceBinding.java:214)
                 at org.jboss.xb.binding.sunday.unmarshalling.ModelGroupBinding$Cursor.startElement(ModelGroupBinding.java:151)
                 at org.jboss.xb.binding.sunday.unmarshalling.SundayContentHandler.startElement(SundayContentHandler.java:182)
                 at org.jboss.xb.binding.parser.sax.SaxJBossXBParser$DelegatingContentHandler.startElement(SaxJBossXBParser.java:269)
                 at org.apache.xerces.parsers.AbstractSAXParser.startElement(Unknown Source)
                 at org.apache.xerces.impl.XMLNSDocumentScannerImpl.scanStartElement(Unknown Source)
                 at org.apache.xerces.impl.XMLDocumentFragmentScannerImpl$FragmentContentDispatcher.dispatch(Unknown Source)
                 at org.apache.xerces.impl.XMLDocumentFragmentScannerImpl.scanDocument(Unknown Source)
                 at org.apache.xerces.parsers.XML11Configuration.parse(Unknown Source)
                 at org.apache.xerces.parsers.XML11Configuration.parse(Unknown Source)
                 at org.apache.xerces.parsers.XMLParser.parse(Unknown Source)
                 at org.apache.xerces.parsers.AbstractSAXParser.parse(Unknown Source)
                 at org.apache.xerces.jaxp.SAXParserImpl$JAXPSAXParser.parse(Unknown Source)
                 at org.jboss.xb.binding.parser.sax.SaxJBossXBParser.parse(SaxJBossXBParser.java:134)
                 ... 32 more
                10:10:35,487 ERROR [SOAPFaultExceptionHelper] SOAP request exception
                
                


                Is there anything i can do in the jaxrpc-mapping-file to stop this problem occuring? I would be grateful for any suggestions or advice..

                • 5. Re: JBoss4.04RC.. new stack
                  patrick_ibg

                  Hi,

                  I have a few questions regarding EJB3 and webservices...

                  1) From what I understand JBossWS supports annotation-based declaration to expose webservice methods, and this works with JBOSS HEAD. As far as backporting to JBoss 4.0.4, is issue http://jira.jboss.com/jira/browse/JBAS-2776 the only holdup?

                  2) Has anyone been successful using the old ws4ee stack working with EJB3 and JBoss 4.0.4?

                  • 6. Re: JBoss4.04RC.. new stack
                    thomas.diesler

                    Open issues for jbossws
                    http://jira.jboss.org/jira/browse/JBWS


                    Has anyone been successful using the old ws4ee stack working with EJB3 and JBoss 4.0.4?


                    EJB3 endpoints are not supported by jboss-ws4ee.