So it is the missing handler which I need to register through
URLStreamHandlerFactory.

It looks like the Felix already registers
org.apache.felix.framework.URLHandlers.  Is there any way to get at this
URLHandlers so that I can add my resource handler?

Would be easier and prefered to use the java.protocol.handler.pkgs system
property to set my resource handler?

Thank you.




Richard S. Hall wrote:
> 
> Ultimately, this looks correct.
> 
> I'm not familiar with the "resource:" protocol, so it makes sense that 
> you get an error when trying to create a URL using that protocol. 
> Someone must provider it via the URL handler service...
> 
> -> richard
> 
> 
> On 10/14/11 14:14 , charlie kim wrote:
>> Hi, I'm generating an XML schema using JAXB and converting it to Relax ng
>> with msv GrammarLoader under Felix container.
>>
>> Following exception is generated and by stepping through the code, here
>> is the actual line of code that throws an exception.
>>
>> Can some one help me on figure out why "Unknown protocol: resource" is
>> thrown here?
>>
>> Thank you.
>>
>>
>>      private static final ThreadLocal m_loopCheck = new ThreadLocal();
>>      protected void parseURL(URL url, String spec, int start, int limit)
>>      {
>>          Object svc = getStreamHandlerService();
>>          if (svc == null)
>>          {
>>              throw new IllegalStateException(
>>                  "Unknown protocol: " + url.getProtocol());
>>          }
>>
>>
>>
>> javax.xml.bind.JAXBException: Couldn't parse auto-generated schema
>>   - with linked exception:
>> [java.net.MalformedURLException: Unknown protocol: resource]
>>          at
>> yjava.ws.util.filter.JerseySchemaGenerator.generateRelaxGrammar(JerseySchemaGenerator.java:107)
>>          at
>> yjava.ws.util.filter.WebServiceFilter.sendGrammar(WebServiceFilter.java:472)
>>          at
>> yjava.ws.util.filter.WebServiceFilter.filter(WebServiceFilter.java:391)
>>          at
>> com.sun.jersey.server.impl.application.WebApplicationImpl._handleRequest(WebApplicationImpl.java:1310)
>>          at
>> com.sun.jersey.server.impl.application.WebApplicationImpl.handleRequest(WebApplicationImpl.java:1239)
>>          at
>> com.sun.jersey.server.impl.application.WebApplicationImpl.handleRequest(WebApplicationImpl.java:1229)
>>          at
>> com.yahoo.disc.handler.jersey.JerseyContent.close(JerseyContent.java:188)
>>          at
>> com.yahoo.disc.core.ContainerSnapshot$ContentProxy.close(ContainerSnapshot.java:144)
>>          at
>> com.yahoo.disc.service.http.netty.server.HttpServerRequestHandler.handleHttpRequest(HttpServerRequestHandler.java:294)
>>          at
>> com.yahoo.disc.service.http.netty.server.HttpServerRequestHandler.messageReceived(HttpServerRequestHandler.java:152)
>>          at
>> org.jboss.netty.channel.SimpleChannelUpstreamHandler.handleUpstream(SimpleChannelUpstreamHandler.java:80)
>>          at
>> org.jboss.netty.handler.timeout.IdleStateAwareChannelUpstreamHandler.handleUpstream(IdleStateAwareChannelUpstreamHandler.java:48)
>>          at
>> org.jboss.netty.channel.DefaultChannelPipeline.sendUpstream(DefaultChannelPipeline.java:545)
>>          at
>> org.jboss.netty.channel.DefaultChannelPipeline$DefaultChannelHandlerContext.sendUpstream(DefaultChannelPipeline.java:754)
>>          at
>> yjava.netty.filters.SecurityFilterUpstreamHandler.messageReceived(SecurityFilterUpstreamHandler.java:111)
>>          at
>> org.jboss.netty.channel.SimpleChannelUpstreamHandler.handleUpstream(SimpleChannelUpstreamHandler.java:80)
>>          at
>> org.jboss.netty.channel.DefaultChannelPipeline.sendUpstream(DefaultChannelPipeline.java:545)
>>          at
>> org.jboss.netty.channel.DefaultChannelPipeline$DefaultChannelHandlerContext.sendUpstream(DefaultChannelPipeline.java:754)
>>          at
>> org.jboss.netty.handler.codec.http.HttpContentEncoder.messageReceived(HttpContentEncoder.java:83)
>>          at
>> org.jboss.netty.channel.SimpleChannelHandler.handleUpstream(SimpleChannelHandler.java:100)
>>          at
>> org.jboss.netty.channel.DefaultChannelPipeline.sendUpstream(DefaultChannelPipeline.java:545)
>>          at
>> org.jboss.netty.channel.DefaultChannelPipeline$DefaultChannelHandlerContext.sendUpstream(DefaultChannelPipeline.java:754)
>>          at
>> org.jboss.netty.channel.Channels.fireMessageReceived(Channels.java:302)
>>          at
>> org.jboss.netty.handler.codec.replay.ReplayingDecoder.unfoldAndfireMessageReceived(ReplayingDecoder.java:522)
>>          at
>> org.jboss.netty.handler.codec.replay.ReplayingDecoder.callDecode(ReplayingDecoder.java:506)
>>          at
>> org.jboss.netty.handler.codec.replay.ReplayingDecoder.messageReceived(ReplayingDecoder.java:443)
>>          at
>> org.jboss.netty.channel.SimpleChannelUpstreamHandler.handleUpstream(SimpleChannelUpstreamHandler.java:80)
>>          at
>> org.jboss.netty.channel.DefaultChannelPipeline.sendUpstream(DefaultChannelPipeline.java:545)
>>          at
>> org.jboss.netty.channel.DefaultChannelPipeline$DefaultChannelHandlerContext.sendUpstream(DefaultChannelPipeline.java:754)
>>          at
>> org.jboss.netty.handler.timeout.IdleStateHandler.messageReceived(IdleStateHandler.java:276)
>>          at
>> org.jboss.netty.channel.SimpleChannelUpstreamHandler.handleUpstream(SimpleChannelUpstreamHandler.java:80)
>>          at
>> org.jboss.netty.channel.DefaultChannelPipeline.sendUpstream(DefaultChannelPipeline.java:545)
>>          at
>> org.jboss.netty.channel.DefaultChannelPipeline.sendUpstream(DefaultChannelPipeline.java:540)
>>          at
>> org.jboss.netty.channel.Channels.fireMessageReceived(Channels.java:274)
>>          at
>> org.jboss.netty.channel.Channels.fireMessageReceived(Channels.java:261)
>>          at
>> org.jboss.netty.channel.socket.nio.NioWorker.read(NioWorker.java:349)
>>          at
>> org.jboss.netty.channel.socket.nio.NioWorker.processSelectedKeys(NioWorker.java:280)
>>          at
>> org.jboss.netty.channel.socket.nio.NioWorker.run(NioWorker.java:200)
>>          at
>> org.jboss.netty.util.ThreadRenamingRunnable.run(ThreadRenamingRunnable.java:108)
>>          at
>> org.jboss.netty.util.internal.DeadLockProofWorker$1.run(DeadLockProofWorker.java:44)
>>          at
>> java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
>>          at
>> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
>>          at java.lang.Thread.run(Thread.java:662)
>> Caused by: java.net.MalformedURLException: Unknown protocol: resource
>>          at
>> com.sun.msv.reader.util.GrammarLoader$ThrowController.error(GrammarLoader.java:152)
>>          at com.sun.msv.reader.Controller.error(Controller.java:49)
>>          at com.sun.msv.reader.Controller.error(Controller.java:49)
>>          at com.sun.msv.reader.Controller.error(Controller.java:69)
>>          at
>> com.sun.msv.reader.GrammarReader._parse(GrammarReader.java:461)
>>          at
>> com.sun.msv.reader.GrammarReader.switchSource(GrammarReader.java:429)
>>          at
>> com.sun.msv.reader.GrammarReader.switchSource(GrammarReader.java:402)
>>          at
>> com.sun.msv.reader.xmlschema.XMLSchemaReader.switchSource(XMLSchemaReader.java:677)
>>          at
>> com.sun.msv.reader.xmlschema.ImportState.startSelf(ImportState.java:41)
>>          at com.sun.msv.reader.State.init(State.java:153)
>>          at
>> com.sun.msv.reader.GrammarReader.pushState(GrammarReader.java:576)
>>          at
>> com.sun.msv.reader.SimpleState.startElement(SimpleState.java:71)
>>          at
>> org.xml.sax.helpers.XMLFilterImpl.startElement(XMLFilterImpl.java:527)
>>          at
>> com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.startElement(AbstractSAXParser.java:501)
>>          at
>> com.sun.org.apache.xerces.internal.parsers.AbstractXMLDocumentParser.emptyElement(AbstractXMLDocumentParser.java:179)
>>          at
>> com.sun.org.apache.xerces.internal.impl.XMLNSDocumentScannerImpl.scanStartElement(XMLNSDocumentScannerImpl.java:377)
>>          at
>> com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl$FragmentContentDriver.next(XMLDocumentFragmentScannerImpl.java:2755)
>>          at
>> com.sun.org.apache.xerces.internal.impl.XMLDocumentScannerImpl.next(XMLDocumentScannerImpl.java:648)
>>          at
>> com.sun.org.apache.xerces.internal.impl.XMLNSDocumentScannerImpl.next(XMLNSDocumentScannerImpl.java:140)
>>          at
>> com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.scanDocument(XMLDocumentFragmentScannerImpl.java:511)
>>          at
>> com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:808)
>>          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:119)
>>          at
>> com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.parse(AbstractSAXParser.java:1205)
>>          at
>> com.sun.org.apache.xerces.internal.jaxp.SAXParserImpl$JAXPSAXParser.parse(SAXParserImpl.java:522)
>>          at
>> com.sun.msv.reader.util.GrammarLoader._loadSchema(GrammarLoader.java:514)
>>          at
>> com.sun.msv.reader.util.GrammarLoader.parse(GrammarLoader.java:325)
>>          at
>> com.sun.msv.reader.util.GrammarLoader.loadSchema(GrammarLoader.java:189)
>>          at
>> com.sun.msv.reader.util.GrammarLoader.loadSchema(GrammarLoader.java:236)
>>          at
>> yjava.ws.util.filter.JerseySchemaGenerator.generateRelaxGrammarDoc(JerseySchemaGenerator.java:164)
>>          at
>> yjava.ws.util.filter.JerseySchemaGenerator.generateRelaxGrammar(JerseySchemaGenerator.java:103)
>>          ... 42 more
>> Caused by: java.net.MalformedURLException: Unknown protocol: resource
>>          at java.net.URL.<init>(URL.java:601)
>>          at java.net.URL.<init>(URL.java:464)
>>          at java.net.URL.<init>(URL.java:413)
>>          at
>> com.sun.org.apache.xerces.internal.impl.XMLEntityManager.setupCurrentEntity(XMLEntityManager.java:650)
>>          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:772)
>>          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:119)
>>          at
>> com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.parse(AbstractSAXParser.java:1205)
>>          at
>> com.sun.org.apache.xerces.internal.jaxp.SAXParserImpl$JAXPSAXParser.parse(SAXParserImpl.java:522)
>>          at
>> com.sun.msv.reader.GrammarReader._parse(GrammarReader.java:456)
>>          ... 68 more
>>
> 
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: [email protected]
> For additional commands, e-mail: [email protected]
> 
> 
> 

-- 
View this message in context: 
http://old.nabble.com/org.apache.felix.framework.URLHandlersStreamHandlerProxy.parseURL-generates-Unknown-protocol%3A-resource-tp32654548p32656015.html
Sent from the Apache Felix - Users mailing list archive at Nabble.com.


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to