Hello, how do I configure Xfire in order to use JAXB schema validation. using JAXB alone I load the Root-Schema and set the Source's SystemID:
private Source getSource(File schemaPath) throws FileNotFoundException { SAXSource saxSource = new SAXSource(new InputSource( new FileInputStream(schemaPath))); saxSource.setSystemId("file:///" + schemaPath.getAbsolutePath()); System.out.println("systemID: '" + saxSource.getSystemId() + "'"); return saxSource; } all imported and included schemas are sucsessfully loaded using relative paths with this setup. Can I achieve the same in the Spring configuration - currently I tried: <bean name="zfzr.server.jaxb" class="org.codehaus.xfire.spring.remoting.XFireExporter"> <property name="serviceBean"> <bean class="de.kba.zfzr.mitteilung.zfzrServiceImpl" /> </property> <property name="serviceClass" value="de.kba.zfzr.mitteilung.zfzrServiceImpl" /> <property name="serviceFactory"> <ref bean="xfire.jaxbServiceFactory" /> </property> <property name="schemas"> <list> <value> file:///D:\programme4\workspace\xfire.zfzr\src\main\resources\ZFZR-Mitteilung.xsd </value> </list> </property> <!-- <property name="wsdlURL" value="bookservice.wsdl" /> --> </bean> but then i get the following exception : org.codehaus.xfire.XFireRuntimeException: Could not invoke service.. Nested exception is org.codehaus.xfire.fault.XFireFault: Error creating validating schema.. Nested exception is org.xml.sax.SAXParseException: src-resolve: Cannot resolve the name 'zfzr-Mitteilung-0' to a(n) 'type definition' component. org.codehaus.xfire.fault.XFireFault: Error creating validating schema.. Nested exception is org.xml.sax.SAXParseException: src-resolve: Cannot resolve the name 'zfzr-Mitteilung-0' to a(n) 'type definition' component. at org.codehaus.xfire.fault.Soap11FaultSerializer.readMessage( Soap11FaultSerializer.java:31) at org.codehaus.xfire.fault.SoapFaultSerializer.readMessage( SoapFaultSerializer.java:28) at org.codehaus.xfire.soap.handler.ReadHeadersHandler.checkForFault( ReadHeadersHandler.java:111) at org.codehaus.xfire.soap.handler.ReadHeadersHandler.invoke( ReadHeadersHandler.java:67) at org.codehaus.xfire.handler.HandlerPipeline.invoke( HandlerPipeline.java:131) at org.codehaus.xfire.client.Client.onReceive(Client.java:387) at org.codehaus.xfire.transport.http.HttpChannel.sendViaClient( HttpChannel.java:139) at org.codehaus.xfire.transport.http.HttpChannel.send(HttpChannel.java :48) at org.codehaus.xfire.handler.OutMessageSender.invoke( OutMessageSender.java:26) at org.codehaus.xfire.handler.HandlerPipeline.invoke( HandlerPipeline.java:131) at org.codehaus.xfire.client.Invocation.invoke(Invocation.java:75) at org.codehaus.xfire.client.Client.invoke(Client.java:335) at org.codehaus.xfire.client.XFireProxy.handleRequest(XFireProxy.java :77) at org.codehaus.xfire.client.XFireProxy.invoke(XFireProxy.java:57) at $Proxy21.arbeitsgang0(Unknown Source) at de.kba.zfzr.ws.test.AG0Test.checkBookServiceFindBook(AG0Test.java:87) at de.kba.zfzr.ws.test.AG0Test.testViaXFireServer(AG0Test.java:75) 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:585) at org.junit.internal.runners.TestMethodRunner.executeMethodBody( TestMethodRunner.java:99) at org.junit.internal.runners.TestMethodRunner.runUnprotected( TestMethodRunner.java:81) at org.junit.internal.runners.BeforeAndAfterRunner.runProtected( BeforeAndAfterRunner.java:34) at org.junit.internal.runners.TestMethodRunner.runMethod( TestMethodRunner.java:75) at org.junit.internal.runners.TestMethodRunner.run(TestMethodRunner.java :45) at org.junit.internal.runners.TestClassMethodsRunner.invokeTestMethod( TestClassMethodsRunner.java:71) at org.junit.internal.runners.TestClassMethodsRunner.run( TestClassMethodsRunner.java:35) at org.junit.internal.runners.TestClassRunner$1.runUnprotected( TestClassRunner.java:42) at org.junit.internal.runners.BeforeAndAfterRunner.runProtected( BeforeAndAfterRunner.java:34) at org.junit.internal.runners.TestClassRunner.run(TestClassRunner.java :52) at org.eclipse.jdt.internal.junit4.runner.JUnit4TestReference.run( JUnit4TestReference.java:38) at org.eclipse.jdt.internal.junit.runner.TestExecution.run( TestExecution.java:38) at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests( RemoteTestRunner.java:460) at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests( RemoteTestRunner.java:673) at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run( RemoteTestRunner.java:386) at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main( RemoteTestRunner.java:196) this seems to be the same behaviour You get with plain JAXB when You not set the SystemId... thanks ralf