Hi,
My guess is that the client thinks the representation returned is XML,
when it is actually JSON.
I would check carefully the accept header the client is sending to the
server. It could be that in windows the default accept header created
by HttpURLConnection is different on Windows than on other platforms.
And the client test code needs to explicitly set the accept header.
Paul.
On Nov 14, 2008, at 2:09 PM, Srinivas Naresh Bhimisetty wrote:
> Hi Paul,
>
> as you might have noticed I have created a branch called "jersey-
> test-framework" for the Jersey Testing Framework development.
> I see one issue with the jMaki Backend tests which were ported to
> this branch. These tests run fine with the three containers
> EmbeddedGF, Grizzly and HTTPServer on Ubuntu, but on my Windows
> laptop one test fails when run with HTTPServer. It gives the
> following error:
>
> =
> =
> =
> =
> =
> =
> =
> =
> =
> =
> =
> =
> =
> =
> =
> =
> =
> =
> =
> =
> =
> =
> ======================================================================
> doTestPutPrinterBasedOnId
> (com.sun.jersey.qe.tests.jmaki.JMakiBackendWebappTest) Time
> elapsed: 0.057 sec <<< ERROR!
> javax.ws.rs.WebApplicationException: javax.xml.bind.UnmarshalException
> - with linked exception:
> [org.xml.sax.SAXParseException: Content is not allowed in prolog.]
> at
> com
> .sun
> .jersey
> .impl
> .provider
> .entity
> .AbstractRootElementProvider
> .readFrom(AbstractRootElementProvider.java:93)
> at
> com.sun.jersey.impl.client.urlconnection.URLConnectionClientHandler
> $URLConnectionResponse.getEntity(URLConnectionClientHandler.java:156)
> at
> com.sun.jersey.impl.client.urlconnection.URLConnectionClientHandler
> $URLConnectionResponse.getEntity(URLConnectionClientHandler.java:138)
> at
> com.sun.jersey.api.client.WebResource.handle(WebResource.java:466)
> at com.sun.jersey.api.client.WebResource.access
> $200(WebResource.java:64)
> at com.sun.jersey.api.client.WebResource
> $Builder.get(WebResource.java:356)
> at
> com
> .sun
> .jersey
> .qe
> .tests
> .jmaki
> .JMakiBackendWebappTest
> .doTestPutPrinterBasedOnId(JMakiBackendWebappTest.java:257)
> at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
> at
> sun
> .reflect
> .NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
> at
> sun
> .reflect
> .DelegatingMethodAccessorImpl
> .invoke(DelegatingMethodAccessorImpl.java:25)
> at java.lang.reflect.Method.invoke(Method.java:597)
> at org.junit.runners.model.FrameworkMethod
> $1.runReflectiveCall(FrameworkMethod.java:44)
> at
> org
> .junit
> .internal
> .runners.model.ReflectiveCallable.run(ReflectiveCallable.java:15)
> at
> org
> .junit
> .runners
> .model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:41)
> at
> org
> .junit
> .internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:
> 20)
> at
> org
> .junit
> .internal.runners.statements.RunBefores.evaluate(RunBefores.java:28)
> at
> org
> .junit.internal.runners.statements.RunAfters.evaluate(RunAfters.java:
> 31)
> at
> org
> .junit
> .runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:
> 73)
> at
> org
> .junit
> .runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:
> 46)
> at
> org.junit.runners.ParentRunner.runChildren(ParentRunner.java:180)
> at org.junit.runners.ParentRunner.access$000(ParentRunner.java:
> 41)
> at org.junit.runners.ParentRunner$1.evaluate(ParentRunner.java:
> 173)
> at
> org
> .junit
> .internal.runners.statements.RunBefores.evaluate(RunBefores.java:28)
> at
> org
> .junit.internal.runners.statements.RunAfters.evaluate(RunAfters.java:
> 31)
> at org.junit.runners.ParentRunner.run(ParentRunner.java:220)
> at
> org
> .apache
> .maven.surefire.junit4.JUnit4TestSet.execute(JUnit4TestSet.java:62)
> at
> org
> .apache
> .maven
> .surefire
> .suite
> .AbstractDirectoryTestSuite
> .executeTestSet(AbstractDirectoryTestSuite.java:140)
> at
> org
> .apache
> .maven
> .surefire
> .suite
> .AbstractDirectoryTestSuite.execute(AbstractDirectoryTestSuite.java:
> 127)
> at org.apache.maven.surefire.Surefire.run(Surefire.java:177)
> at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
> at
> sun
> .reflect
> .NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
> at
> sun
> .reflect
> .DelegatingMethodAccessorImpl
> .invoke(DelegatingMethodAccessorImpl.java:25)
> at java.lang.reflect.Method.invoke(Method.java:597)
> at
> org
> .apache
> .maven
> .surefire
> .booter.SurefireBooter.runSuitesInProcess(SurefireBooter.java:338)
> at
> org
> .apache
> .maven.surefire.booter.SurefireBooter.main(SurefireBooter.java:997)
> Caused by: javax.xml.bind.UnmarshalException
> - with linked exception:
> [org.xml.sax.SAXParseException: Content is not allowed in prolog.]
> at
> javax
> .xml
> .bind
> .helpers
> .AbstractUnmarshallerImpl
> .createUnmarshalException(AbstractUnmarshallerImpl.java:315)
> at
> com
> .sun
> .xml
> .bind
> .v2
> .runtime
> .unmarshaller
> .UnmarshallerImpl.createUnmarshalException(UnmarshallerImpl.java:481)
> at
> com
> .sun
> .xml
> .bind
> .v2
> .runtime
> .unmarshaller.UnmarshallerImpl.unmarshal0(UnmarshallerImpl.java:199)
> at
> com
> .sun
> .xml
> .bind
> .v2
> .runtime
> .unmarshaller.UnmarshallerImpl.unmarshal(UnmarshallerImpl.java:168)
> at
> javax
> .xml
> .bind
> .helpers
> .AbstractUnmarshallerImpl.unmarshal(AbstractUnmarshallerImpl.java:137)
> at
> javax
> .xml
> .bind
> .helpers
> .AbstractUnmarshallerImpl.unmarshal(AbstractUnmarshallerImpl.java:184)
> at
> com
> .sun
> .jersey
> .impl
> .provider
> .entity.XMLRootElementProvider.readFrom(XMLRootElementProvider.java:
> 92)
> at
> com
> .sun
> .jersey
> .impl
> .provider
> .entity
> .AbstractRootElementProvider
> .readFrom(AbstractRootElementProvider.java:91)
> ... 34 more
> Caused by: org.xml.sax.SAXParseException: Content is not allowed in
> prolog.
> at
> com
> .sun
> .org
> .apache
> .xerces
> .internal
> .util
> .ErrorHandlerWrapper
> .createSAXParseException(ErrorHandlerWrapper.java:195)
> at
> com
> .sun
> .org
> .apache
> .xerces
> .internal
> .util.ErrorHandlerWrapper.fatalError(ErrorHandlerWrapper.java:174)
> at
> com
> .sun
> .org
> .apache
> .xerces
> .internal.impl.XMLErrorReporter.reportError(XMLErrorReporter.java:388)
> at
> com
> .sun
> .org
> .apache
> .xerces.internal.impl.XMLScanner.reportFatalError(XMLScanner.java:
> 1411)
> at
> com.sun.org.apache.xerces.internal.impl.XMLDocumentScannerImpl
> $PrologDriver.next(XMLDocumentScannerImpl.java:1038)
> 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:510)
> at
> com
> .sun
> .org
> .apache
> .xerces
> .internal.parsers.XML11Configuration.parse(XML11Configuration.java:
> 807)
> 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:1205)
> at com.sun.org.apache.xerces.internal.jaxp.SAXParserImpl
> $JAXPSAXParser.parse(SAXParserImpl.java:522)
> at
> com
> .sun
> .xml
> .bind
> .v2
> .runtime
> .unmarshaller.UnmarshallerImpl.unmarshal0(UnmarshallerImpl.java:195)
> ... 39 more
> =
> =
> =
> =
> =
> =
> =
> =
> =
> =
> =
> =
> =
> =
> =
> =
> =
> =
> =
> =
> =
> =
> =
> =
> ======================================================================
>
> Is it possible that this is some Windows specific issue?
>
> Thanks,
> Naresh
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: users-unsubscribe_at_jersey.dev.java.net
> For additional commands, e-mail: users-help_at_jersey.dev.java.net
>