Hi Alex, Still no joy, I'm afraid. We upgraded Java on the machine in question to 1.4.2 and I corrected the Java code as per your suggestion.
On loading the page, I receive an error message: line 14, column 68: Error attribute "sourcepath" not allowed at this point; ignored near config (schema: http://www.orbeon.org/oxf/xml/java) The relevant XML is <p:processor uri="oxf/processor/java" xmlns:p="http://www.orbeon.com/oxf/pipeline"> <p:input name="config"> <config sourcepath="oxf:/aa-form" class="DeepThoughtProcessor"/> </p:input> <p:output name="data" ref="data" debug="java-out" id="java-out"/> </p:processor> Java code is import org.orbeon.oxf.processor.pipeline.PipelineContext; import org.orbeon.oxf.processor.ProcessorInputOutputInfo; import org.orbeon.oxf.processor.SimpleProcessor; import org.xml.sax.ContentHandler; import org.xml.sax.SAXException; import org.xml.sax.helpers.AttributesImpl; public class DeepThoughtProcessor extends SimpleProcessor { public DeepThoughtProcessor() { addOutputInfo(new ProcessorInputOutputInfo(OUTPUT_DATA)); } public void generateData(PipelineContext context, ContentHandler contentHandler) throws SAXException { String answer = "42"; contentHandler.startDocument(); contentHandler.startElement("", "answer", "answer", new AttributesImpl()); contentHandler.characters(answer.toCharArray(), 0, answer.length()); contentHandler.endElement("", "answer", "answer"); contentHandler.endDocument(); } } And the stacktrace is org.orbeon.oxf.common.ValidationException: oxf:/aa-form/ldap.xpl, line 14, column 68: Error attribute "sourcepath" not allowed at this point; ignored near config (schema: http://www.orbeon.org/oxf/xml/java) at org.orbeon.oxf.processor.validation.RNGValidationProcessor$ErrorHandler.error(RNGValidationProcessor.java:287) at com.thaiopensource.relaxng.impl.PatternValidatorHandler.error(PatternValidatorHandler.java:236) at com.thaiopensource.relaxng.impl.PatternValidatorHandler.error(PatternValidatorHandler.java:228) at com.thaiopensource.relaxng.impl.PatternValidatorHandler.startElement(PatternValidatorHandler.java:90) at org.orbeon.oxf.processor.validation.RNGValidationProcessor$3.startElement(RNGValidationProcessor.java:233) at org.orbeon.oxf.xml.SAXStore.replay(SAXStore.java:152) at org.orbeon.oxf.processor.generator.DOMGenerator$1.readImpl(DOMGenerator.java:130) at org.orbeon.oxf.processor.ProcessorImpl$5.read(ProcessorImpl.java:784) at org.orbeon.oxf.processor.ProcessorImpl$ProcessorOutputImpl.read(ProcessorImpl.java:898) at org.orbeon.oxf.processor.ProcessorImpl.readInputAsSAX(ProcessorImpl.java:283) at org.orbeon.oxf.processor.validation.RNGValidationProcessor.access$400(RNGValidationProcessor.java:31) at org.orbeon.oxf.processor.validation.RNGValidationProcessor$1.readImpl(RNGValidationProcessor.java:80) at org.orbeon.oxf.processor.ProcessorImpl$5.read(ProcessorImpl.java:784) at org.orbeon.oxf.processor.ProcessorImpl$ProcessorOutputImpl.read(ProcessorImpl.java:898) at org.orbeon.oxf.processor.validation.ValidationProcessor$1.readImpl(ValidationProcessor.java:120) at org.orbeon.oxf.processor.ProcessorImpl$5.read(ProcessorImpl.java:784) at org.orbeon.oxf.processor.ProcessorImpl$ProcessorOutputImpl.read(ProcessorImpl.java:898) at org.orbeon.oxf.processor.ProcessorImpl.readInputAsSAX(ProcessorImpl.java:283) at org.orbeon.oxf.processor.ProcessorImpl.readInputAsDOM4J(ProcessorImpl.java:300) at org.orbeon.oxf.processor.ProcessorImpl.readInputAsDOM4J(ProcessorImpl.java:309) at org.orbeon.oxf.processor.JavaProcessor$3.read(JavaProcessor.java:119) at org.orbeon.oxf.processor.ProcessorImpl.readCacheInputAsObject(ProcessorImpl.java:371) at org.orbeon.oxf.processor.JavaProcessor.getProcessor(JavaProcessor.java:117) at org.orbeon.oxf.processor.JavaProcessor.start(JavaProcessor.java:74) at org.orbeon.oxf.processor.JavaProcessor$1.getInput(JavaProcessor.java:61) at org.orbeon.oxf.processor.JavaProcessor$1.readImpl(JavaProcessor.java:47) at org.orbeon.oxf.processor.ProcessorImpl$5.read(ProcessorImpl.java:784) at org.orbeon.oxf.processor.ProcessorImpl$ProcessorOutputImpl$ConcreteProcessorFilter$ForwarderProcessorOutput.read(ProcessorImpl.java:731) at org.orbeon.oxf.processor.ProcessorImpl.readInputAsSAX(ProcessorImpl.java:283) at org.orbeon.oxf.processor.ProcessorImpl.readInputAsDOM4J(ProcessorImpl.java:300) at org.orbeon.oxf.processor.ProcessorImpl.readInputAsDOM4J(ProcessorImpl.java:309) at org.orbeon.oxf.processor.DebugProcessor$1.readImpl(DebugProcessor.java:39) at org.orbeon.oxf.processor.ProcessorImpl$5.read(ProcessorImpl.java:784) at org.orbeon.oxf.processor.ProcessorImpl$ProcessorOutputImpl.read(ProcessorImpl.java:898) at org.orbeon.oxf.processor.ProcessorImpl$ProcessorOutputImpl$ConcreteProcessorFilter.read(ProcessorImpl.java:755) at org.orbeon.oxf.processor.ProcessorImpl$ProcessorOutputImpl$ConcreteProcessorFilter$ForwarderProcessorOutput.read(ProcessorImpl.java:731) at org.orbeon.oxf.processor.ProcessorImpl.readInputAsSAX(ProcessorImpl.java:283) at org.orbeon.oxf.processor.ProcessorImpl.readInputAsDOM4J(ProcessorImpl.java:300) at org.orbeon.oxf.processor.ProcessorImpl.readInputAsDOM4J(ProcessorImpl.java:309) at org.orbeon.oxf.processor.DebugProcessor$1.readImpl(DebugProcessor.java:39) at org.orbeon.oxf.processor.ProcessorImpl$5.read(ProcessorImpl.java:784) at org.orbeon.oxf.processor.ProcessorImpl$ProcessorOutputImpl.read(ProcessorImpl.java:898) at org.orbeon.oxf.processor.ProcessorImpl$ProcessorOutputImpl$ConcreteProcessorFilte Sorry for the delay getting back On Wed, 1 Oct 2003 04:37, Alessandro Vernet wrote: > Hi Peter, > > 1) You are probably getting this exception because of the JDK version > you are using. You need the JDK 1.4.1 or 1.4.2 to use the Java > processor. If you cannot upgrade, just let us know and we'll see what > we can do to port this functionality to older versions of the JDK. > > 2) You seem to be using the addSocketInfo(...) method in your custom > processor. With OXF 2.1 you should now call: addOutputInfo(new > ProcessorInputOutputInfo(OUTPUT_DATA)). The OXF 2.1 documentation has > unfortunately not been modified to reflect this; I apologize for this. > Note that if you use the old API with the OXF 2.1 you will get a > compilation error. > > 3) We have added an example using the Java processor. It will be part > of the next release of OXF. > > Alex > > Peter Raftos wrote: > > Hi All, > > > > I'm having difficulties getting the java processor to work. My processor > > looks like: > > > > <p:processor uri="oxf/processor/java" > > xmlns:p="http://www.orbeon.com/oxf/pipeline"> > > <p:input name="config"> > > <config srcpath="aa-form" processor="DeepThoughtProcessor.java"/> > > </p:input> > > <p:output name="data" ref="data" debug="java-out" id="java-out"/> > > </p:processor> > > > > And the code isd as per the documentation DeepThoughtProcessor: > > > > import org.orbeon.oxf.processor.pipeline.PipelineContext; > > import org.orbeon.oxf.processor.ProcessorInputOutputInfo; > > import org.orbeon.oxf.processor.SimpleProcessor; > > import org.xml.sax.ContentHandler; > > import org.xml.sax.SAXException; > > import org.xml.sax.helpers.AttributesImpl; > > > > public class DeepThoughtProcessor extends SimpleProcessor { > > > > public DeepThoughtProcessor() { > > addSocketInfo(new ProcessorSocketInfo > > (ProcessorSocketInfo.OUTPUT_TYPE, OUTPUT_DATA)); > > } > > > > public void generateData(PipelineContext context, > > ContentHandler contentHandler) > > throws SAXException { > > String answer = "42"; > > contentHandler.startDocument(); > > contentHandler.startElement("", "answer", "answer", new > > AttributesImpl()); > > contentHandler.characters(answer.toCharArray(), 0, > > answer.length()); contentHandler.endElement("", "answer", "answer"); > > contentHandler.endDocument(); > > } > > } > > > > This generates a NoSuchMethod Error: > > com.sun.tools.javac.Main.compile([Ljava/lang/String;Ljava/io/PrintWriter; > >)I > > > > (The full stack trace is below) > > > > I have recently upgraded from OXF2.0.2 to 2.1 and according to the > > documentation, the line > > <config srcpath="aa-form" processor="DeepThoughtProcessor.java"/> > > Should read > > <config sourcepath="aa-form" class="DeepThoughtProcessor.java"/> > > But OXF doesn't recognise those attributes. > > > > > > Any ideas? > > > > Peter Raftos > > > > ---------------------------------------------------------- > > > > java.lang.NoSuchMethodError: > > com.sun.tools.javac.Main.compile([Ljava/lang/String;Ljava/io/PrintWriter; > >)I at > > org.orbeon.oxf.processor.JavaProcessor.getProcessor(JavaProcessor.java:16 > >9) at org.orbeon.oxf.processor.JavaProcessor.start(JavaProcessor.java:74) > > at > > org.orbeon.oxf.processor.JavaProcessor$1.getInput(JavaProcessor.java:61) > > at > > org.orbeon.oxf.processor.JavaProcessor$1.readImpl(JavaProcessor.java:47) > > at org.orbeon.oxf.processor.ProcessorImpl$5.read(ProcessorImpl.java:784) > > at > > org.orbeon.oxf.processor.ProcessorImpl$ProcessorOutputImpl$ConcreteProces > >sorFilter$ForwarderProcessorOutput.read(ProcessorImpl.java:731) at > > org.orbeon.oxf.processor.ProcessorImpl.readInputAsSAX(ProcessorImpl.java: > >283) at > > org.orbeon.oxf.processor.ProcessorImpl.readInputAsDOM4J(ProcessorImpl.jav > >a:300) at > > org.orbeon.oxf.processor.ProcessorImpl.readInputAsDOM4J(ProcessorImpl.jav > >a:309) at > > org.orbeon.oxf.processor.DebugProcessor$1.readImpl(DebugProcessor.java:39 > >) at org.orbeon.oxf.processor.ProcessorImpl$5.read(ProcessorImpl.java:784) > > at > > org.orbeon.oxf.processor.ProcessorImpl$ProcessorOutputImpl.read(Processor > >Impl.java:898) at > > org.orbeon.oxf.processor.ProcessorImpl$ProcessorOutputImpl$ConcreteProces > >sorFilter.read(ProcessorImpl.java:755) at > > org.orbeon.oxf.processor.ProcessorImpl$ProcessorOutputImpl$ConcreteProces > >sorFilter$ForwarderProcessorOutput.read(ProcessorImpl.java:731) at > > org.orbeon.oxf.processor.ProcessorImpl.readInputAsSAX(ProcessorImpl.java: > >283) at > > org.orbeon.oxf.processor.ProcessorImpl.readInputAsDOM4J(ProcessorImpl.jav > >a:300) at > > org.orbeon.oxf.processor.ProcessorImpl.readInputAsDOM4J(ProcessorImpl.jav > >a:309) at > > org.orbeon.oxf.processor.DebugProcessor$1.readImpl(DebugProcessor.java:39 > >) at org.orbeon.oxf.processor.ProcessorImpl$5.read(ProcessorImpl.java:784) > > at > > org.orbeon.oxf.processor.ProcessorImpl$ProcessorOutputImpl.read(Processor > >Impl.java:898) at > > org.orbeon.oxf.processor.ProcessorImpl$ProcessorOutputImpl$ConcreteProces > >sorFilter.read(ProcessorImpl.java:755) at > > org.orbeon.oxf.processor.ProcessorImpl$ProcessorOutputImpl.read(Processor > >Impl.java:898) at > > org.orbeon.oxf.processor.ProcessorImpl.readInputAsSAX(ProcessorImpl.java: > >283) at > > org.orbeon.oxf.processor.serializer.XMLSerializer.readInputInFilter(XMLSe > >rializer.java:45) at > > org.orbeon.oxf.processor.serializer.HttpCachedSerializer$1.read(HttpCache > >dSerializer.java:88) at > > org.orbeon.oxf.processor.ProcessorImpl.readCacheInputAsObject(ProcessorIm > >pl.java:371) at > > org.orbeon.oxf.processor.serializer.HttpCachedSerializer.start(HttpCached > >Serializer.java:85) at > > org.orbeon.oxf.processor.pipeline.PipelineProcessor$11.run(PipelineProces > >sor.java:474) at > > org.orbeon.oxf.processor.ProcessorImpl.executeChildren(ProcessorImpl.java > >:417) at > > org.orbeon.oxf.processor.pipeline.PipelineProcessor.start(PipelineProcess > >or.java:472) at > > org.orbeon.oxf.processor.pipeline.PipelineProcessor$11.run(PipelineProces > >sor.java:474) at > > org.orbeon.oxf.processor.ProcessorImpl.executeChildren(ProcessorImpl.java > >:417) at > > org.orbeon.oxf.processor.pipeline.PipelineProcessor.start(PipelineProcess > >or.java:472) at > > org.orbeon.oxf.processor.pipeline.PipelineProcessor$1.getInput(PipelinePr > >ocessor.java:134) at > > org.orbeon.oxf.processor.pipeline.PipelineProcessor$1.readImpl(PipelinePr > >ocessor.java:83) at > > org.orbeon.oxf.processor.ProcessorImpl$5.read(ProcessorImpl.java:784) at > > org.orbeon.oxf.processor.ProcessorImpl$ProcessorOutputImpl.read(Processor > >Impl.java:898) at > > org.orbeon.oxf.processor.pipeline.ChooseProcessor$3.readImpl(ChooseProces > >sor.java:312) at > > org.orbeon.oxf.processor.ProcessorImpl$5.read(ProcessorImpl.java:784) at > > org.orbeon.oxf.processor.ProcessorImpl$ProcessorOutputImpl.read(Processor > >Impl.java:898) at > > org.orbeon.oxf.processor.ProcessorImpl.readInputAsSAX(ProcessorImpl.java: > >283) at > > org.orbeon.oxf.processor.ProcessorImpl.readInputAsSAX(ProcessorImpl.java: > >287) at > > org.orbeon.oxf.processor.IdentityProcessor$1.readImpl(IdentityProcessor.j > >ava:24) at > > org.orbeon.oxf.processor.ProcessorImpl$5.read(ProcessorImpl.java:784) at > > org.orbeon.oxf.processor.ProcessorImpl$ProcessorOutputImpl.read(Processor > >Impl.java:898) at > > org.orbeon.oxf.processor.ProcessorImpl.readInputAsSAX(ProcessorImpl.java: > >283) at > > org.orbeon.oxf.processor.pipeline.PipelineProcessor.access$000(PipelinePr > >ocessor.java:55) at > > org.orbeon.oxf.processor.pipeline.PipelineProcessor$2.run(PipelineProcess > >or.java:90) at > > org.orbeon.oxf.processor.ProcessorImpl.executeChildren(ProcessorImpl.java > >:417) at > > org.orbeon.oxf.processor.pipeline.PipelineProcessor.access$100(PipelinePr > >ocessor.java:55) at > > org.orbeon.oxf.processor.pipeline.PipelineProcessor$1.readImpl(PipelinePr > >ocessor.java:88) at > > org.orbeon.oxf.processor.ProcessorImpl$5.read(ProcessorImpl.java:784) at > > org.orbeon.oxf.processor.ProcessorImpl$ProcessorOutputImpl.read(Processor > >Impl.java:898) at > > org.orbeon.oxf.processor.ProcessorImpl.readInputAsSAX(ProcessorImpl.java: > >283) at > > org.orbeon.oxf.processor.ProcessorImpl.readInputAsSAX(ProcessorImpl.java: > >287) at > > org.orbeon.oxf.processor.NullSerializer.start(NullSerializer.java:25) at > > org.orbeon.oxf.processor.pipeline.PipelineProcessor$11.run(PipelineProces > >sor.java:474) at > > org.orbeon.oxf.processor.ProcessorImpl.executeChildren(ProcessorImpl.java > >:417) at > > org.orbeon.oxf.processor.pipeline.PipelineProcessor.start(PipelineProcess > >or.java:472) at > > org.orbeon.oxf.processor.pipeline.PipelineProcessor$1.getInput(PipelinePr > >ocessor.java:134) at > > org.orbeon.oxf.processor.pipeline.PipelineProcessor$1.getKeyImpl(Pipeline > >Processor.java:103) at > > org.orbeon.oxf.processor.ProcessorImpl$5.getKey(ProcessorImpl.java:788) > > at > > org.orbeon.oxf.processor.ProcessorImpl$ProcessorOutputImpl.getKey(Process > >orImpl.java:905) at > > org.orbeon.oxf.processor.pipeline.ChooseProcessor$3.getKeyImpl(ChooseProc > >essor.java:322) at > > org.orbeon.oxf.processor.ProcessorImpl$5.getKey(ProcessorImpl.java:788) > > at > > org.orbeon.oxf.processor.ProcessorImpl$ProcessorOutputImpl.getKey(Process > >orImpl.java:905) at > > org.orbeon.oxf.processor.ProcessorImpl.getInputKey(ProcessorImpl.java:915 > >) at > > org.orbeon.oxf.processor.pipeline.PipelineProcessor.access$400(PipelinePr > >ocessor.java:55) at > > org.orbeon.oxf.processor.pipeline.PipelineProcessor$3.run(PipelineProcess > >or.java:107) at > > org.orbeon.oxf.processor.ProcessorImpl.executeChildren(ProcessorImpl.java > >:417) at > > org.orbeon.oxf.processor.pipeline.PipelineProcessor.access$500(PipelinePr > >ocessor.java:55) at > > org.orbeon.oxf.processor.pipeline.PipelineProcessor$1.getKeyImpl(Pipeline > >Processor.java:105) at > > org.orbeon.oxf.processor.ProcessorImpl$5.getKey(ProcessorImpl.java:788) > > at > > org.orbeon.oxf.processor.ProcessorImpl$ProcessorOutputImpl.getKey(Process > >orImpl.java:905) at > > org.orbeon.oxf.processor.pipeline.ChooseProcessor$3.getKeyImpl(ChooseProc > >essor.java:322) at > > org.orbeon.oxf.processor.ProcessorImpl$5.getKey(ProcessorImpl.java:788) > > at > > org.orbeon.oxf.processor.ProcessorImpl$ProcessorOutputImpl.getKey(Process > >orImpl.java:905) at > > org.orbeon.oxf.processor.pipeline.TeeProcessor$1.getKeyImpl(TeeProcessor. > >java:46) at > > org.orbeon.oxf.processor.ProcessorImpl$5.getKey(ProcessorImpl.java:788) > > at > > org.orbeon.oxf.processor.ProcessorImpl$ProcessorOutputImpl.getKey(Process > >orImpl.java:905) at > > org.orbeon.oxf.processor.ProcessorImpl.readCacheInputAsObject(ProcessorIm > >pl.java:355) at > > org.orbeon.oxf.processor.ProcessorImpl.readCacheInputAsDOM4J(ProcessorImp > >l.java:322) at > > org.orbeon.oxf.processor.pipeline.ChooseProcessor$ConcreteChooseProcessor > >.start(ChooseProcessor.java:354) at > > org.orbeon.oxf.processor.pipeline.PipelineProcessor$11.run(PipelineProces > >sor.java:474) at > > org.orbeon.oxf.processor.ProcessorImpl.executeChildren(ProcessorImpl.java > >:417) at > > org.orbeon.oxf.processor.pipeline.PipelineProcessor.start(PipelineProcess > >or.java:472) at > > org.orbeon.oxf.processor.WebAppControllerProcessor.start(WebAppController > >Processor.java:306) at > > org.orbeon.oxf.servlet.ProcessorService.service(ProcessorService.java:292 > >) at > > org.orbeon.oxf.servlet.ProcessorServlet.service(ProcessorServlet.java:40) > > at javax.servlet.http.HttpServlet.service(HttpServlet.java:853) at > > org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(Applicat > >ionFilterChain.java:247) at > > org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilte > >rChain.java:193) at > > org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve > >.java:256) at > > org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.in > >vokeNext(StandardPipeline.java:643) at > > org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:48 > >0) at > > org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995) at > > org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve > >.java:191) at > > org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.in > >vokeNext(StandardPipeline.java:643) at > > org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:48 > >0) at > > org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995) at > > org.apache.catalina.core.StandardContext.invoke(StandardContext.java:2415 > >) at > > org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java: > >180) at > > org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.in > >vokeNext(StandardPipeline.java:643) at > > org.apache.catalina.valves.ErrorDispatcherValve.invoke(ErrorDispatcherVal > >ve.java:171) at > > org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.in > >vokeNext(StandardPipeline.java:641) at > > org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java: > >172) at > > org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.in > >vokeNext(StandardPipeline.java:641) at > > org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:48 > >0) at > > org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995) at > > org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.j > >ava:174) at > > org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.in > >vokeNext(StandardPipeline.java:643) at > > org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:48 > >0) at > > org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995) at > > org.apache.coyote.tomcat4.CoyoteAdapter.service(CoyoteAdapter.java:223) > > at > > org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:594 > >) at > > org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.processCo > >nnection(Http11Protocol.java:392) at > > org.apache.tomcat.util.net.TcpWorkerThread.runIt(PoolTcpEndpoint.java:565 > >) at > > org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool. > >java:619) at java.lang.Thread.run(Thread.java:536) > > _______________________________________________ -- Project Officer Scholarly Technology Services Australian National University Tel: (61 2) 6125 1065 _______________________________________________ oxf-users mailing list [EMAIL PROTECTED] http://mail.orbeon.com/mailman/listinfo/oxf-users
