-
30. Re: problem parsing sip.xml with JBossXB
aloubyansky Jan 14, 2009 11:43 AM (in response to deruelle_jean)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 Jan 14, 2009 11:50 AM (in response to deruelle_jean)That was fast.
Thanks, will try that out -
32. Re: problem parsing sip.xml with JBossXB
aloubyansky Jan 16, 2009 2:53 AM (in response to deruelle_jean)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 Jan 16, 2009 3:06 AM (in response to 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 Jan 16, 2009 3:14 AM (in response to deruelle_jean)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 Jan 16, 2009 3:15 AM (in response to deruelle_jean)yes
-
36. Re: problem parsing sip.xml with JBossXB
aloubyansky Jan 16, 2009 3:17 AM (in response to deruelle_jean)I'm gonna try it later today.
-
37. Re: problem parsing sip.xml with JBossXB
deruelle_jean Jan 16, 2009 4:40 AM (in response to 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 Jan 16, 2009 5:54 AM (in response to deruelle_jean)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 Jan 16, 2009 10:24 AM (in response to 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 Jan 20, 2009 9:00 AM (in response to deruelle_jean)jbossxb-2.0.1.Beta1 has just been released. Thanks!
-
41. Re: problem parsing sip.xml with JBossXB
deruelle_jean Jan 28, 2009 5:11 AM (in response to 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 Apr 29, 2009 7:30 AM (in response to 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 Apr 29, 2009 2:39 PM (in response to deruelle_jean)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 Apr 30, 2009 8:18 AM (in response to 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 gotCaused 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