1 2 3 4 Previous Next 46 Replies Latest reply on May 4, 2009 3:24 AM by deruelle_jean Go to original post
      • 30. Re: problem parsing sip.xml with JBossXB
        aloubyansky

        I have committed the changes. I've also renamed applyToChildren annotation element (since it hasn't been released yet) if you are using it.

        An example for your use-case would be http://anonsvn.jboss.org/repos/common/jbossxb/trunk/src/test/java/org/jboss/test/xb/builder/object/element/jbossxmlnsprefix/support/ApplyToElementFalseApplyToTypeTrue.java

        It's anonsvn link, so it may take some time before it becomes valid.

        BTW, I recommend you use propOrder element of XmlType annotation if you want your code to run in different JVM versions.

        • 31. Re: problem parsing sip.xml with JBossXB
          deruelle_jean

          That was fast.
          Thanks, will try that out

          • 32. Re: problem parsing sip.xml with JBossXB
            aloubyansky

            After all (including support for properties bound to model groups), I renamed the elements again.

            /**
             * True means the element or model group the property is bound to will be bound to the namespace specified by the prefix.
             * False means the element or model group will be in the schema's target namespace.
             *
             * @return
             */
             boolean applyToComponentQName() default true;
            
             /**
             * True means the type of the property (including its child elements, their types and model groups recursively)
             * will be bound to the namespace specified by the prefix.
             * False means the type of the property (including its child elements, their types and model groups recursively)
             * will be bound to the schema's target namespace.
             *
             * @return
             */
             boolean applyToComponentContent() default true;


            • 33. Re: problem parsing sip.xml with JBossXB
              deruelle_jean

              I just tried it on my servlets element :
              @XmlElement(name="servlet")
              @JBossXmlNsPrefix(prefix = "javaee", applyToComponentQName=false, applyToComponentContent=true, schemaTargetIfNotMapped=true)
              public void setServlets(ServletsMetaData sipServlets) {
              this.servlets = sipServlets;
              }

              But I still get this exception which is weird since the servlet element is a child of the sip-app element in the sipservlet namespace :
              org.jboss.deployers.spi.DeploymentException: Error creating managed object for vfszip:/home/deruelle/servers/jboss-5.0.0.GA/server/default/deploy/call-blocking-1.2-SNAPSHOT.war
              at org.jboss.deployers.spi.DeploymentException.rethrowAsDeploymentException(DeploymentException.java:49)
              at org.jboss.deployers.spi.deployer.helpers.AbstractParsingDeployerWithOutput.createMetaData(AbstractParsingDeployerWithOutput.java:337)
              at org.jboss.deployers.spi.deployer.helpers.AbstractParsingDeployerWithOutput.createMetaData(AbstractParsingDeployerWithOutput.java:297)
              at org.jboss.deployers.spi.deployer.helpers.AbstractParsingDeployerWithOutput.createMetaData(AbstractParsingDeployerWithOutput.java:269)
              at org.jboss.deployers.spi.deployer.helpers.AbstractParsingDeployerWithOutput.deploy(AbstractParsingDeployerWithOutput.java:230)
              at org.jboss.deployers.plugins.deployers.DeployerWrapper.deploy(DeployerWrapper.java:171)
              at org.jboss.deployers.plugins.deployers.DeployersImpl.doDeploy(DeployersImpl.java:1439)
              at org.jboss.deployers.plugins.deployers.DeployersImpl.doInstallParentFirst(DeployersImpl.java:1157)
              at org.jboss.deployers.plugins.deployers.DeployersImpl.install(DeployersImpl.java:1098)
              at org.jboss.dependency.plugins.AbstractControllerContext.install(AbstractControllerContext.java:348)
              at org.jboss.dependency.plugins.AbstractController.install(AbstractController.java:1598)
              at org.jboss.dependency.plugins.AbstractController.incrementState(AbstractController.java:934)
              at org.jboss.dependency.plugins.AbstractController.resolveContexts(AbstractController.java:1062)
              at org.jboss.dependency.plugins.AbstractController.resolveContexts(AbstractController.java:984)
              at org.jboss.dependency.plugins.AbstractController.change(AbstractController.java:822)
              at org.jboss.dependency.plugins.AbstractController.change(AbstractController.java:553)
              at org.jboss.deployers.plugins.deployers.DeployersImpl.process(DeployersImpl.java:781)
              at org.jboss.deployers.plugins.main.MainDeployerImpl.process(MainDeployerImpl.java:545)
              at org.jboss.system.server.profileservice.ProfileServiceBootstrap.loadProfile(ProfileServiceBootstrap.java:304)
              at org.jboss.system.server.profileservice.ProfileServiceBootstrap.start(ProfileServiceBootstrap.java:205)
              at org.jboss.bootstrap.AbstractServerImpl.start(AbstractServerImpl.java:405)
              at org.jboss.Main.boot(Main.java:209)
              at org.jboss.Main$1.run(Main.java:547)
              at java.lang.Thread.run(Thread.java:595)
              Caused by: org.jboss.xb.binding.JBossXBException: Failed to parse source: {http://www.jcp.org/xml/ns/sipservlet}servlet not found as a child of {http://www.jcp.org/xml/ns/sipservlet}sip-app
              at org.jboss.xb.binding.parser.sax.SaxJBossXBParser.parse(SaxJBossXBParser.java:203)
              at org.jboss.xb.binding.UnmarshallerImpl.unmarshal(UnmarshallerImpl.java:168)
              at org.jboss.deployers.vfs.spi.deployer.JBossXBDeployerHelper.parse(JBossXBDeployerHelper.java:199)
              at org.jboss.deployers.vfs.spi.deployer.JBossXBDeployerHelper.parse(JBossXBDeployerHelper.java:170)
              at org.jboss.deployers.vfs.spi.deployer.SchemaResolverDeployer.parse(SchemaResolverDeployer.java:132)
              at org.jboss.deployers.vfs.spi.deployer.SchemaResolverDeployer.parse(SchemaResolverDeployer.java:118)
              at org.jboss.deployers.vfs.spi.deployer.AbstractVFSParsingDeployer.parseAndInit(AbstractVFSParsingDeployer.java:256)
              at org.jboss.deployers.vfs.spi.deployer.AbstractVFSParsingDeployer.parse(AbstractVFSParsingDeployer.java:188)
              at org.jboss.deployers.spi.deployer.helpers.AbstractParsingDeployerWithOutput.createMetaData(AbstractParsingDeployerWithOutput.java:323)
              ... 22 more
              Caused by: org.jboss.xb.binding.JBossXBRuntimeException: {http://www.jcp.org/xml/ns/sipservlet}servlet not found as a child of {http://www.jcp.org/xml/ns/sipservlet}sip-app
              at org.jboss.xb.binding.sunday.unmarshalling.SundayContentHandler.startElement(SundayContentHandler.java:400)
              at org.jboss.xb.binding.parser.sax.SaxJBossXBParser$DelegatingContentHandler.startElement(SaxJBossXBParser.java:401)
              at org.apache.xerces.parsers.AbstractSAXParser.startElement(Unknown Source)
              at org.apache.xerces.impl.xs.XMLSchemaValidator.startElement(Unknown Source)
              at org.apache.xerces.xinclude.XIncludeHandler.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:199)
              ... 30 more

              • 34. Re: problem parsing sip.xml with JBossXB
                aloubyansky

                Is this the XML?

                <sip-app xmlns="http://www.jcp.org/xml/ns/sipservlet" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
                 xsi:schemaLocation="http://www.jcp.org/xml/ns/sipservlet http://www.jcp.org/xml/ns/sipservlet/sip-app_1_1.xsd"
                 xmlns:javaee="http://java.sun.com/xml/ns/javaee" xmlns:xs="http://www.w3.org/2001/XMLSchema"
                 version="1.1">
                 <app-name>org.mobicents.servlet.sip.example.CallBlockingApplication</app-name>
                
                 <servlet>
                 <javaee:servlet-name>CallBlockingSipServlet</javaee:servlet-name>
                 <javaee:servlet-class>org.mobicents.servlet.sip.example.CallBlockingSipServlet</javaee:servlet-class>
                 <javaee:load-on-startup>1</javaee:load-on-startup>
                 </servlet>
                
                 <listener>
                 <javaee:listener-class>org.mobicents.servlet.sip.example.CallBlockingSipServlet</javaee:listener-class>
                 </listener>
                </sip-app>


                • 35. Re: problem parsing sip.xml with JBossXB
                  deruelle_jean

                  yes

                  • 36. Re: problem parsing sip.xml with JBossXB
                    aloubyansky

                    I'm gonna try it later today.

                    • 37. Re: problem parsing sip.xml with JBossXB
                      deruelle_jean

                      I got it to work in adding this at line 1622 of JBossXBNoSchemaBuilder :

                      else
                       overrideNamespace = defaultNamespace;

                      Not sure if it needs to be added everywhere applyToComponentQName method is used though

                      • 38. Re: problem parsing sip.xml with JBossXB
                        aloubyansky

                        I messed up the default namespace before the component QName has been generated.
                        It should be fixed now.
                        Thanks for testing!

                        • 39. Re: problem parsing sip.xml with JBossXB
                          deruelle_jean

                          No problem Alex, you take the time to fix the functionality for me, I take the time of testing it ;-)

                          and I gladly report that this is working :-)
                          Thanks again for your time on this one and if you could update the thread as soon as you cut out a new release for jbossxb, that would be awesome

                          Thanks
                          Jean

                          • 40. Re: problem parsing sip.xml with JBossXB
                            aloubyansky

                            jbossxb-2.0.1.Beta1 has just been released. Thanks!

                            • 41. Re: problem parsing sip.xml with JBossXB
                              deruelle_jean

                              Sorry for the late reply. Thanks :-)

                              I've got another question. In the sip app xsd http://www.jcp.org/xml/ns/sipservlet/sip-app_1_1.xsd, there is the servlet-selection element and it's type is servlet-selectionType which is a choice between main-servlet and servlet-mapping elements.

                              So I was wondering if in my deployment descriptor it should be

                              <servlet-selection>
                               <main-servlet>
                               </main-servlet>
                              </servlet-selection>


                              or just
                               <main-servlet>
                               </main-servlet>


                              ?

                              Thanks in advance
                              Jean

                              • 42. Re: problem parsing sip.xml with JBossXB
                                deruelle_jean

                                Hi,

                                I stumbled on a new problem, but that might be due to my newbieness on JAXB still.
                                The sip app.xsd http://www.jcp.org/xml/ns/sipservlet/sip-app_1_1.xsd defines an element called condition which is abstract and many elements such as and, or, equals ... that are child of this condition (belong to the same substitutiongroup).

                                My corresponding mapping classes are available here :
                                http://mobicents.googlecode.com/svn/trunk/servers/sip-servlets/sip-servlets-jboss5-metadata/src/main/java/org/jboss/metadata/sip/spec/ConditionMetaData.java

                                http://mobicents.googlecode.com/svn/trunk/servers/sip-servlets/sip-servlets-jboss5-metadata/src/main/java/org/jboss/metadata/sip/spec/AndMetaData.java

                                http://mobicents.googlecode.com/svn/trunk/servers/sip-servlets/sip-servlets-jboss5-metadata/src/main/java/org/jboss/metadata/sip/spec/OrMetaData.java

                                When I try to load this sip.xml :
                                http://mobicents.googlecode.com/svn/trunk/servers/sip-servlets/sip-servlets-test-suite/applications/servlet-mapping-servlet/src/main/sipapp/WEB-INF/sip.xml

                                I get the following exception :

                                Caused by: org.jboss.xb.binding.JBossXBException: Failed to parse source: and not found as a child of pattern
                                 at org.jboss.xb.binding.parser.sax.SaxJBossXBParser.parse(SaxJBossXBParser.java:203)
                                 at org.jboss.xb.binding.UnmarshallerImpl.unmarshal(UnmarshallerImpl.java:168)
                                 at org.jboss.deployers.vfs.spi.deployer.JBossXBDeployerHelper.parse(JBossXBDeployerHelper.java:199)
                                 at org.jboss.deployers.vfs.spi.deployer.JBossXBDeployerHelper.parse(JBossXBDeployerHelper.java:170)
                                 at org.jboss.deployers.vfs.spi.deployer.SchemaResolverDeployer.parse(SchemaResolverDeployer.java:132)
                                 at org.jboss.deployers.vfs.spi.deployer.SchemaResolverDeployer.parse(SchemaResolverDeployer.java:118)
                                 at org.jboss.deployers.vfs.spi.deployer.AbstractVFSParsingDeployer.parseAndInit(AbstractVFSParsingDeployer.java:256)
                                 at org.jboss.deployers.vfs.spi.deployer.AbstractVFSParsingDeployer.parse(AbstractVFSParsingDeployer.java:188)
                                 at org.jboss.deployers.spi.deployer.helpers.AbstractParsingDeployerWithOutput.createMetaData(AbstractParsingDeployerWithOutput.java:323)
                                 ... 22 more
                                Caused by: org.jboss.xb.binding.JBossXBRuntimeException: and not found as a child of pattern
                                 at org.jboss.xb.binding.sunday.unmarshalling.SundayContentHandler.startElement(SundayContentHandler.java:400)
                                 at org.jboss.xb.binding.parser.sax.SaxJBossXBParser$DelegatingContentHandler.startElement(SaxJBossXBParser.java:401)
                                 at org.apache.xerces.parsers.AbstractSAXParser.startElement(Unknown Source)
                                 at org.apache.xerces.xinclude.XIncludeHandler.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:199)
                                 ... 30 more
                                17:25:41,319 INFO [TomcatConvergedDeployer] vfsfile:/home/deruelle/servers/jboss-5.0.1.G


                                Any help would be appreciated on how to make the AndMetaData a child of ConditionMetaData

                                Thanks in advance
                                Best regards
                                Jean Deruelle

                                • 43. Re: problem parsing sip.xml with JBossXB
                                  aloubyansky

                                  If that's a choice binding based on a super class then you could try:

                                  - jboss-specific binding e.g. http://anonsvn.jboss.org/repos/jbossas/projects/metadata/trunk/src/main/java/org/jboss/metadata/ejb/jboss/JBossEnterpriseBeanMetaData.java (here you would uncomment @JBossXmlModelGroup annotation, hopefully it's clear enough?)

                                  - or look here at enterpriseBeans property http://anonsvn.jboss.org/repos/jbossas/projects/metadata/trunk/src/main/java/org/jboss/metadata/ejb/jboss/JBoss50MetaData.java

                                  • 44. Re: problem parsing sip.xml with JBossXB
                                    deruelle_jean

                                     

                                    "alex.loubyansky@jboss.com" wrote:
                                    If that's a choice binding based on a super class then you could try:
                                    ]


                                    Not it is not. it is a substitution group. I tried anyway but I got
                                    Caused by: org.jboss.xb.binding.JBossXBException: Failed to parse source: Requested element and is not allowed in this position in the sequence. The next element should be condition
                                     at org.jboss.xb.binding.parser.sax.SaxJBossXBParser.parse(SaxJBossXBParser.java:203)
                                     at org.jboss.xb.binding.UnmarshallerImpl.unmarshal(UnmarshallerImpl.java:168)
                                     at org.jboss.deployers.vfs.spi.deployer.JBossXBDeployerHelper.parse(JBossXBDeployerHelper.java:199)
                                     at org.jboss.deployers.vfs.spi.deployer.JBossXBDeployerHelper.parse(JBossXBDeployerHelper.java:170)
                                     at org.jboss.deployers.vfs.spi.deployer.SchemaResolverDeployer.parse(SchemaResolverDeployer.java:132)
                                     at org.jboss.deployers.vfs.spi.deployer.SchemaResolverDeployer.parse(SchemaResolverDeployer.java:118)
                                     at org.jboss.deployers.vfs.spi.deployer.AbstractVFSParsingDeployer.parseAndInit(AbstractVFSParsingDeployer.java:256)
                                     at org.jboss.deployers.vfs.spi.deployer.AbstractVFSParsingDeployer.parse(AbstractVFSParsingDeployer.java:188)
                                     at org.jboss.deployers.spi.deployer.helpers.AbstractParsingDeployerWithOutput.createMetaData(AbstractParsingDeployerWithOutput.java:323)
                                     ... 22 more
                                    Caused by: org.jboss.xb.binding.JBossXBRuntimeException: Requested element and is not allowed in this position in the sequence. The next element should be condition
                                     at org.jboss.xb.binding.sunday.unmarshalling.SequenceBinding$1.startElement(SequenceBinding.java:226)
                                     at org.jboss.xb.binding.sunday.unmarshalling.ModelGroupBinding$Cursor.startElement(ModelGroupBinding.java:185)
                                     at org.jboss.xb.binding.sunday.unmarshalling.SundayContentHandler.startElement(SundayContentHandler.java:397)
                                     at org.jboss.xb.binding.parser.sax.SaxJBossXBParser$DelegatingContentHandler.startElement(SaxJBossXBParser.java:401)
                                     at org.apache.xerces.parsers.AbstractSAXParser.startElement(Unknown Source)
                                     at org.apache.xerces.xinclude.XIncludeHandler.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:199)


                                    I committed everything to SVN in case you want take a look at it.
                                    But I think I find some tips after some time googling around :
                                    http://java.sun.com/javaee/5/docs/api/javax/xml/bind/annotation/XmlElementRef.html Example 2
                                    and
                                    http://fusesource.com/docs/framework/2.1/jaxws/JAXWSElementSubstitutionJava.html

                                    I hope this will help. If you have any similarity in JBoss metadata somewhere that would be helpful

                                    Thanks in advance
                                    Best regards
                                    Jean