When you´re execute a BPEL. I dont how debug a error. To see inside of a execution engenner you could implement a listener
import java.util.Properties;
import org.apache.ode.bpel.evt.BpelEvent;
import org.apache.ode.bpel.evt.EventContext;
import org.apache.ode.bpel.iapi.*;
public class Listener implements BpelEventListener {
EventContext context;
@Override
public void onEvent(BpelEvent arg0) {
context =arg0.eventContext;
// TODO Auto-generated method stub
String evento ="";
evento = evento+ "--------------------------------\n";
evento = evento+ "evento: ["+arg0.eventName(arg0)+"] \n";
evento = evento+ "linea : ["+arg0.getLineNo()+"] \n";
evento = evento+ "tipo : ["+arg0.getType()+"] \n";
evento = evento+ getNamesVariables();
evento = evento+ "--------------------------------\n";
System.out.println(evento );
}
@Override
public void shutdown() {
// TODO Auto-generated method stub
;
System.out.println( "-------------shutdown---------------\n");
}
@Override
public void startup(Properties arg0) {
String evento ="";
// TODO Auto-generated method stub
evento = evento+ "--------------------------------\n";
evento = evento+ arg0 ;
evento = evento+ "--------------------------------\n";
System.out.println(evento );
}
private String getNamesVariables(){
String cadena="";
for(String variable :context.getVariableNames()){
cadena = cadena +" variable["+ variable+"]\n";
}
return cadena ;
}
}
build a class and copy inside folder
apache-tomcat-5.5.33\webapps\ode\WEB-INF\classes
if you dont create a file in ode-axis2.properties you to have to create in
apache-tomcat-5.5.33\webapps\ode\WEB-INF\conf
this information are in http://ode.apache.org/ode-execution-events.html
Friday, May 27, 2011
Thursday, May 12, 2011
ejecutar la funcion doXslTrasnsform
Si quieres hacer transformacion de datos en el BPEL, existe una funcion que ejecuta las hojas de estilo XSLT, para ejecutar esta instruccion dentro de un BPEL necesita la ruta de un XSLT y un node-set. Este node-set no puede ser ni un tipo de dato definido en tu XML Schema, (fichero xsd) ni un mensaje WSDL. Así que lo unico que acepta son elementos definidos. Así que es un poco extraño que si en tu WSDL que no has definido nigún tipo de dato element, tengas que definirlo para realizar una llamada a un XSLT. Así que la solución que propongo es, defines un nuevo fichero Schema XML inserto un element en el fichero, importo el Schema XML en el WSDL, importo el WSDL en el BPEL.
<import location="HelloWorld.wsdl"
namespace="http://ode/bpel/unit-test.wsdl"
importType="http://schemas.xmlsoap.org/wsdl/" />
< ... mas nodos bpel
<variables>
<variable name="myVar" messageType="test:HelloMessage"/>
<variable name="tmpVar" element="data:elementoNuevo" />
<.... mas variables
</variables>
<... proceso
<... copia el mensaje a la variable.
<bpel:assign name="Assign">
<bpel:copy>
<bpel:from>bpel:doXslTransform('urn:/transforma.xsl',$tmpVar)</bpel:from>
<bpel:to variable="otherVar" part="TestPart" />
</bpel:copy>
</bpel:assign>
<import location="HelloWorld.wsdl"
namespace="http://ode/bpel/unit-test.wsdl"
importType="http://schemas.xmlsoap.org/wsdl/" />
< ... mas nodos bpel
<variables>
<variable name="myVar" messageType="test:HelloMessage"/>
<variable name="tmpVar" element="data:elementoNuevo" />
<.... mas variables
</variables>
<... proceso
<... copia el mensaje a la variable.
<bpel:assign name="Assign">
<bpel:copy>
<bpel:from>bpel:doXslTransform('urn:/transforma.xsl',$tmpVar)</bpel:from>
<bpel:to variable="otherVar" part="TestPart" />
</bpel:copy>
</bpel:assign>
Subscribe to:
Posts (Atom)