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:169) 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$ConcreteProcessorFilter.read(ProcessorImpl.java:755) 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.serializer.XMLSerializer.readInputInFilter(XMLSerializer.java:45) at org.orbeon.oxf.processor.serializer.HttpCachedSerializer$1.read(HttpCachedSerializer.java:88) at org.orbeon.oxf.processor.ProcessorImpl.readCacheInputAsObject(ProcessorImpl.java:371) at org.orbeon.oxf.processor.serializer.HttpCachedSerializer.start(HttpCachedSerializer.java:85) at org.orbeon.oxf.processor.pipeline.PipelineProcessor$11.run(PipelineProcessor.java:474) at org.orbeon.oxf.processor.ProcessorImpl.executeChildren(ProcessorImpl.java:417) at org.orbeon.oxf.processor.pipeline.PipelineProcessor.start(PipelineProcessor.java:472) at org.orbeon.oxf.processor.pipeline.PipelineProcessor$11.run(PipelineProcessor.java:474) at org.orbeon.oxf.processor.ProcessorImpl.executeChildren(ProcessorImpl.java:417) at org.orbeon.oxf.processor.pipeline.PipelineProcessor.start(PipelineProcessor.java:472) at org.orbeon.oxf.processor.pipeline.PipelineProcessor$1.getInput(PipelineProcessor.java:134) at org.orbeon.oxf.processor.pipeline.PipelineProcessor$1.readImpl(PipelineProcessor.java:83) 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.pipeline.ChooseProcessor$3.readImpl(ChooseProcessor.java:312) 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.readInputAsSAX(ProcessorImpl.java:287) at org.orbeon.oxf.processor.IdentityProcessor$1.readImpl(IdentityProcessor.java:24) 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.pipeline.PipelineProcessor.access$000(PipelineProcessor.java:55) at org.orbeon.oxf.processor.pipeline.PipelineProcessor$2.run(PipelineProcessor.java:90) at org.orbeon.oxf.processor.ProcessorImpl.executeChildren(ProcessorImpl.java:417) at org.orbeon.oxf.processor.pipeline.PipelineProcessor.access$100(PipelineProcessor.java:55) at org.orbeon.oxf.processor.pipeline.PipelineProcessor$1.readImpl(PipelineProcessor.java:88) 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.readInputAsSAX(ProcessorImpl.java:287) at org.orbeon.oxf.processor.NullSerializer.start(NullSerializer.java:25) at org.orbeon.oxf.processor.pipeline.PipelineProcessor$11.run(PipelineProcessor.java:474) at org.orbeon.oxf.processor.ProcessorImpl.executeChildren(ProcessorImpl.java:417) at org.orbeon.oxf.processor.pipeline.PipelineProcessor.start(PipelineProcessor.java:472) at org.orbeon.oxf.processor.pipeline.PipelineProcessor$1.getInput(PipelineProcessor.java:134) at org.orbeon.oxf.processor.pipeline.PipelineProcessor$1.getKeyImpl(PipelineProcessor.java:103) at org.orbeon.oxf.processor.ProcessorImpl$5.getKey(ProcessorImpl.java:788) at org.orbeon.oxf.processor.ProcessorImpl$ProcessorOutputImpl.getKey(ProcessorImpl.java:905) at org.orbeon.oxf.processor.pipeline.ChooseProcessor$3.getKeyImpl(ChooseProcessor.java:322) at org.orbeon.oxf.processor.ProcessorImpl$5.getKey(ProcessorImpl.java:788) at org.orbeon.oxf.processor.ProcessorImpl$ProcessorOutputImpl.getKey(ProcessorImpl.java:905) at org.orbeon.oxf.processor.ProcessorImpl.getInputKey(ProcessorImpl.java:915) at org.orbeon.oxf.processor.pipeline.PipelineProcessor.access$400(PipelineProcessor.java:55) at org.orbeon.oxf.processor.pipeline.PipelineProcessor$3.run(PipelineProcessor.java:107) at org.orbeon.oxf.processor.ProcessorImpl.executeChildren(ProcessorImpl.java:417) at org.orbeon.oxf.processor.pipeline.PipelineProcessor.access$500(PipelineProcessor.java:55) at org.orbeon.oxf.processor.pipeline.PipelineProcessor$1.getKeyImpl(PipelineProcessor.java:105) at org.orbeon.oxf.processor.ProcessorImpl$5.getKey(ProcessorImpl.java:788) at org.orbeon.oxf.processor.ProcessorImpl$ProcessorOutputImpl.getKey(ProcessorImpl.java:905) at org.orbeon.oxf.processor.pipeline.ChooseProcessor$3.getKeyImpl(ChooseProcessor.java:322) at org.orbeon.oxf.processor.ProcessorImpl$5.getKey(ProcessorImpl.java:788) at org.orbeon.oxf.processor.ProcessorImpl$ProcessorOutputImpl.getKey(ProcessorImpl.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(ProcessorImpl.java:905) at org.orbeon.oxf.processor.ProcessorImpl.readCacheInputAsObject(ProcessorImpl.java:355) at org.orbeon.oxf.processor.ProcessorImpl.readCacheInputAsDOM4J(ProcessorImpl.java:322) at org.orbeon.oxf.processor.pipeline.ChooseProcessor$ConcreteChooseProcessor.start(ChooseProcessor.java:354) at org.orbeon.oxf.processor.pipeline.PipelineProcessor$11.run(PipelineProcessor.java:474) at org.orbeon.oxf.processor.ProcessorImpl.executeChildren(ProcessorImpl.java:417) at org.orbeon.oxf.processor.pipeline.PipelineProcessor.start(PipelineProcessor.java:472) at org.orbeon.oxf.processor.WebAppControllerProcessor.start(WebAppControllerProcessor.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(ApplicationFilterChain.java:247) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:193) at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:256) at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:643) at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:480) 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.invokeNext(StandardPipeline.java:643) at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:480) 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.invokeNext(StandardPipeline.java:643) at org.apache.catalina.valves.ErrorDispatcherValve.invoke(ErrorDispatcherValve.java:171) at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:641) at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:172) at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:641) at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:480) at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995) at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:174) at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:643) at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:480) 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.processConnection(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)
_______________________________________________ oxf-users mailing list [EMAIL PROTECTED] http://mail.orbeon.com/mailman/listinfo/oxf-users
