[
Date Prev][
Date Next][
Thread Prev][
Thread Next][
Date Index][
Thread Index]
[
List Home]
Re: [eclipselink-users] MalformedURLException in sdo-compiler
|
Well we get a bit further, I now get:-
Local Exception Stack:
Exception [EclipseLink-25004] (Eclipse Persistence Services - 1.0 (Build 1.0 -
20080707)): org.eclipse.persistence.exceptions.XMLMarshalException
Exception Description: An error occurred unmarshalling the document
Internal Exception: java.net.UnknownHostException: ..
at
org.eclipse.persistence.exceptions.XMLMarshalException.unmarshalException(XMLMarshalException.java:91)
at
org.eclipse.persistence.internal.oxm.record.SAXUnmarshaller.unmarshal(SAXUnmarshaller.java:550)
at
org.eclipse.persistence.internal.oxm.record.SAXUnmarshaller.unmarshal(SAXUnmarshaller.java:458)
at
org.eclipse.persistence.oxm.XMLUnmarshaller.unmarshal(XMLUnmarshaller.java:447)
at
org.eclipse.persistence.sdo.helper.SDOTypesGenerator.getSchema(SDOTypesGenerator.java:2018)
at
org.eclipse.persistence.sdo.helper.SDOTypesGenerator.getSchema(SDOTypesGenerator.java:2027)
at
org.eclipse.persistence.sdo.helper.SDOTypesGenerator.getSchema(SDOTypesGenerator.java:1999)
at
org.eclipse.persistence.sdo.helper.SDOTypesGenerator.define(SDOTypesGenerator.java:108)
at
org.eclipse.persistence.sdo.helper.SDOClassGenerator.generate(SDOClassGenerator.java:209)
at
org.eclipse.persistence.sdo.helper.SDOClassGenerator.generate(SDOClassGenerator.java:175)
at
uk.co.linkchoose.eclipselink.sdoCompiler.CustomClassGenerator.<init>(CustomClassGenerator.java:21)
at
uk.co.linkchoose.eclipselink.sdoCompiler.CustomClassGenerator.main(CustomClassGenerator.java:48)
Caused by: java.net.UnknownHostException: ..
at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:177)
at java.net.Socket.connect(Socket.java:519)
at java.net.Socket.connect(Socket.java:469)
at sun.net.NetworkClient.doConnect(NetworkClient.java:157)
at sun.net.NetworkClient.openServer(NetworkClient.java:118)
at sun.net.ftp.FtpClient.openServer(FtpClient.java:488)
at sun.net.ftp.FtpClient.openServer(FtpClient.java:475)
at
sun.net.www.protocol.ftp.FtpURLConnection.connect(FtpURLConnection.java:270)
at
sun.net.www.protocol.ftp.FtpURLConnection.getInputStream(FtpURLConnection.java:352)
at
com.sun.org.apache.xerces.internal.impl.XMLEntityManager.setupCurrentEntity(XMLEntityManager.java:653)
at
com.sun.org.apache.xerces.internal.impl.XMLVersionDetector.determineDocVersion(XMLVersionDetector.java:186)
at
com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:771)
at
com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:737)
at
com.sun.org.apache.xerces.internal.parsers.XMLParser.parse(XMLParser.java:107)
at
com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.parse(AbstractSAXParser.java:1132)
at
com.sun.org.apache.xerces.internal.jaxp.SAXParserImpl$JAXPSAXParser.parse(SAXParserImpl.java:533)
at
org.eclipse.persistence.internal.oxm.record.XMLReader.parse(XMLReader.java:103)
at
org.eclipse.persistence.internal.oxm.record.SAXUnmarshaller.unmarshal(SAXUnmarshaller.java:544)
... 10 more
lots of times.
David
On Wednesday 09 July 2008, David McCann wrote:
> Please let me know if my workaround suggestion helped. I am looking
> into your issue regarding our default resolver now, and will update the
> bug shortly.
>
> --dave
>
> ------------------------------------------------------------------------
>
> David Goodenough wrote:
> > That is to say how do I do this using the command sdo-compiler.sh?
> >
> > Also why does the else below (and that in the default one) use new URL
> > when surely it should use new URI?
> >
> > David
> >
> > On Wednesday 09 July 2008, David Goodenough wrote:
> >> How do I use this in the sdo-compiler?
> >>
> >> David
> >>
> >> On Wednesday 09 July 2008, David McCann wrote:
> >>> Hey David,
> >>>
> >>> To handle this scenario you will need to implement a SchemaResolver
> >>> (org.eclipse.persistence.sdo.helper package) that can load the doc
> >>> based on the relative path. To do this, you can simply extend the
> >>> default resolver we provide
> >>> (org.eclipse.persistence.sdo.helper.DefaultSchemaResolver) and override
> >>> the resolveSchema(Source, String, String) method to handle this case.
> >>> Note that the schema resolver is passed in as a parameter in the define
> >>> method on the delegator.
> >>>
> >>> Here's an example of a custom resolver:
> >>>
> >>> public class CyclicSchemaResolver extends DefaultSchemaResolver {
> >>> public Source resolveSchema(Source sourceXSD, String namespace,
> >>> String schemaLocation) {
> >>> if (schemaLocation != null && !schemaLocation.equals("")) {
> >>> return super.resolveSchema(sourceXSD, namespace,
> >>> schemaLocation);
> >>> }
> >>> schemaLocation = namespace.equals("uri") ? "Cyclic1.xsd" :
> >>> "Cyclic2.xsd";
> >>> URL schemaUrl = null;
> >>> try {
> >>> if (getBaseSchemaLocation() != null) {
> >>> // Attempt to resolve the schema location against
> >>> the base location
> >>> URI baseUri = new URI(getBaseSchemaLocation());
> >>> URI resolvedUri = baseUri.resolve(schemaLocation);
> >>> schemaUrl = resolvedUri.toURL();
> >>> } else {
> >>> schemaUrl = new URL(schemaLocation);
> >>> }
> >>> } catch (Exception e) {
> >>> return null;
> >>> }
> >>> return new StreamSource(schemaUrl.toExternalForm());
> >>> }
> >>> }
> >>>
> >>> Please let me know if you have any questions.
> >>>
> >>> --Dave
> >>> -----------------------------------------------------------------------
> >>>-
> >>>
> >>> David Goodenough wrote:
> >>>> I am trying to run the sdo-compiler against some of the OASIS xsd
> >>>> files but when I try I get a MalformedURLException when resolving
> >>>> schemas.
> >>>>
> >>>> This is using 1.0M11.
> >>>>
> >>>> The first exception I get is:-
> >>>>
> >>>> [EL Warning]: 2008.07.09 11:41:48.932--Thread(Thread[main,5,main])--An
> >>>> java.net.MalformedURLException occurred processing referenced schema
> >>>> with uri
> >>>> urn:oasis:names:specification:ubl:schema:xsd:CommonAggregateComponents
> >>>>- 2 with schemaLocation
> >>>> ../common/UBL-CommonAggregateComponents-2.0.xsd. [EL Finest]:
> >>>> 2008.07.09
> >>>> 11:41:48.947--Thread(Thread[main,5,main])--java.net.MalformedURLExcept
> >>>>i on
> >>>>
> >>>> : no protocol: ../common/UBL-CommonAggregateComponents-2.0.xsd
> >>>>
> >>>> at java.net.URL.<init>(URL.java:567)
> >>>> at java.net.URL.<init>(URL.java:464)
> >>>> at java.net.URL.<init>(URL.java:413)
> >>>> at
> >>>> org.eclipse.persistence.sdo.helper.DefaultSchemaResolver.resolveSchema
> >>>>( De faultSchemaResolver.java:55) at
> >>>> org.eclipse.persistence.sdo.helper.SchemaResolverWrapper.resolveSchema
> >>>>( Sc hemaResolverWrapper.java:61) at
> >>>> org.eclipse.persistence.sdo.helper.SDOTypesGenerator.getReferencedSche
> >>>>m a( SDOTypesGenerator.java:2056) at
> >>>> org.eclipse.persistence.sdo.helper.SDOTypesGenerator.getSchema(SDOType
> >>>>s Ge nerator.java:2025) at
> >>>> org.eclipse.persistence.sdo.helper.SDOTypesGenerator.getSchema(SDOType
> >>>>s Ge nerator.java:1999) at
> >>>> org.eclipse.persistence.sdo.helper.SDOTypesGenerator.define(SDOTypesGe
> >>>>n er ator.java:108) at
> >>>> org.eclipse.persistence.sdo.helper.SDOClassGenerator.generate(SDOClass
> >>>>G en erator.java:209) at
> >>>> org.eclipse.persistence.sdo.helper.SDOClassGenerator.generate(SDOClass
> >>>>G en erator.java:175) at
> >>>> org.eclipse.persistence.sdo.helper.SDOClassGenerator.main(SDOClassGene
> >>>>r at or.java:111)
> >>>>
> >>>> Looking at the relevant line in the xsd file, it starts:-
> >>>>
> >>>> <?xml version="1.0" encoding="UTF-8"?>
> >>>> <!--
> >>>> Document Type: Invoice
> >>>> Generated On: Tue Oct 03 2:26:38 P3 2006
> >>>>
> >>>> -->
> >>>> <!-- ===== xsd:schema Element With Namespaces Declarations ===== -->
> >>>> <xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema"
> >>>>
> >>>> targetNamespace="urn:oasis:names:specification:ubl:schema:xsd:Invoice-
> >>>>2 " xmlns="urn:oasis:names:specification:ubl:schema:xsd:Invoice-2"
> >>>>
> >>>> xmlns:cac="urn:oasis:names:specification:ubl:schema:xsd:CommonAggregat
> >>>>e Co mponents-2"
> >>>>
> >>>> xmlns:cbc="urn:oasis:names:specification:ubl:schema:xsd:CommonBasicCom
> >>>>p on ents-2"
> >>>>
> >>>> xmlns:udt="urn:un:unece:uncefact:data:specification:UnqualifiedDataTyp
> >>>>e sS chemaModule:2" xmlns:ccts="urn:un:unece:uncefact:documentation:2"
> >>>>
> >>>> xmlns:ext="urn:oasis:names:specification:ubl:schema:xsd:CommonExtensio
> >>>>n Co mponents-2"
> >>>>
> >>>> xmlns:qdt="urn:oasis:names:specification:ubl:schema:xsd:QualifiedDatat
> >>>>y pe s-2" elementFormDefault="qualified"
> >>>> attributeFormDefault="unqualified"
> >>>> version="2.0">
> >>>> <!-- ===== Imports ===== -->
> >>>> <xsd:import
> >>>> namespace="urn:oasis:names:specification:ubl:schema:xsd:CommonAggregat
> >>>>e Co mponents-2"
> >>>> schemaLocation="../common/UBL-CommonAggregateComponents-2.0.xsd"/>
> >>>>
> >>>> and I think it is complaining about schemaLocation.
> >>>>
> >>>> I guess this is because of the lack of a protocol.
> >>>>
> >>>> I am using Sun Java 6 on linux, using its default XML code.
> >>>>
> >>>> Perhaps the code in DefaultSchemaResolver needs to trap this exception
> >>>> and try adding file:/// to the front of the URL. I do not know
> >>>> whether this is really a fault with the OASIS xsd file but they have
> >>>> been in the field for a while and I am sure of XML parsers generally
> >>>> objected to this it would have been picked up as a problem.
> >>>>
> >>>> In fact looking at the code, should DefaultSchemaResolver.java line 55
> >>>> which currently reads:-
> >>>>
> >>>> schemaUrl = new URL(schemaLocation);
> >>>>
> >>>> read instead:-
> >>>>
> >>>> schemaUrl = new URI(schemaLocation).toUrl();
> >>>>
> >>>> as the javadoc for URI says that it can handle this kind of
> >>>> specification without a protocol.
> >>>>
> >>>> David
> >>>> _______________________________________________
> >>>> eclipselink-users mailing list
> >>>> eclipselink-users@xxxxxxxxxxx
> >>>> https://dev.eclipse.org/mailman/listinfo/eclipselink-users
> >>
> >> _______________________________________________
> >> eclipselink-users mailing list
> >> eclipselink-users@xxxxxxxxxxx
> >> https://dev.eclipse.org/mailman/listinfo/eclipselink-users
> >
> > _______________________________________________
> > eclipselink-users mailing list
> > eclipselink-users@xxxxxxxxxxx
> > https://dev.eclipse.org/mailman/listinfo/eclipselink-users