1.从SAP market上下载sapidoc3和sapjco3下载两个java包
2.jco服务器端代码如下
import com.sap.conn.idoc.*;
import java.io.*;
import com.sap.conn.jco.server.*;
import com.sap.conn.idoc.jco.*;
public class IDocServerExample
{
public static void main(String[] a)
{
try
{
// see provided examples of configuration files MYSERVER.jcoServer and BCE.jcoDestination
JCoIDocServer server = JCoIDoc.getServer("MYSERVER");
server.setIDocHandlerFactory(new MyIDocHandlerFactory());
server.setTIDHandler(new MyTidHandler());
MyThrowableListener listener = new MyThrowableListener();
server.addServerErrorListener(listener);
server.addServerExceptionListener(listener);
server.setConnectionCount(1);
server.start();
}
catch (Exception e)
{
e.printStackTrace();
}
}
static class MyIDocHandler implements JCoIDocHandler
{
public void handleRequest(JCoServerContext serverCtx, IDocDocumentList idocList)
{
该方法用来侦听SAP的IDOC 端口,如果有idoc发送到该端口,该方法就会把该idoc生成xml文件
FileOutputStream fos=null;
OutputStreamWriter osw=null;
try
{
IDocXMLProcessor xmlProcessor =
JCoIDoc.getIDocFactory().getIDocXMLProcessor();
fos=new FileOutputStream(serverCtx.getTID()+"_idoc.xml");
osw=new OutputStreamWriter(fos, "UTF8");
xmlProcessor.render(idocList, osw,
IDocXMLProcessor.RENDER_WITH_TABS_AND_CRLF);
osw.flush();
}
catch (Throwable thr)
{
thr.printStackTrace();
}
finally
{
try
{