Hallo,
Ich möchte gerne über einen EJB auf einen Funktionsbaustein in einem
BW-System zugreifen. Für den Zugriff auf diesen FuBa habe ich über NWDS
Proxy-Classen (Entreprise Connector) generiert.
Über diesen Proxy kann ich lokal (über NWDS) den FuBa aufrufen (siehe
Code-Besipiel).
Wenn ich den selben Aufruf integriert in einem EJB durchführe (den selben Code), scheitert die Anwendung schon in der Methode connectToSAP(...).
Woran kann es liegen ?
Was muss ich beachten damit ich eine JCO-Verbindung zu einem FuBa (über eine Enterprise Connector) auf einem J2EE-Server (SAP Web AS) aufbauen kann ?
Ich danke Euch im Voraus und verbleibe
mit freundlichen Güßen
A. Büyükyilmaz
ANHANG
-------------------------------------------------------
/*
* Created on 13.02.2007
*
* To change the template for this generated file go to
* Window>Preferences>Java>Code Generation>Code and Comments
*/
package de.hshnordbank.test.ep.main;
import java.sql.Date;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import com.sap.aii.proxy.framework.core.ApplicationFaultException;
import com.sap.aii.proxy.framework.core.SystemFaultException;
import com.sap.mw.jco.JCO;
import de.hshnordbank.docfactory.wpreport.connectivity.fuba.Anlage_PortType;
import de.hshnordbank.docfactory.wpreport.connectivity.fuba.Zge_Gerel_Data_For_Kne_Kn_Input;
import de.hshnordbank.docfactory.wpreport.connectivity.fuba.Zge_Gerel_Data_For_Kne_Kn_Output;
/**
* @author pg4011
*
* To change the template for this generated type comment go to
* Window>Preferences>Java>Code Generation>Code and Comments
*/
public class GetAnlage {
private JCO.Client mConnection = null;
public boolean connectToSAP(
String client,
String user,
String passwd,
String lang,
String appServer,
String sysNo) {
try {
mConnection =
JCO.createClient(client, user, passwd, lang, appServer, sysNo);
mConnection.connect();
} catch (Exception e) {
e.printStackTrace();
return false;
}
return true;
}
public static void main(String[] args) {
GetAnlage anlage = new GetAnlage();
if (anlage.connectToSAP ("50", "abc", "pwd", "DE", "system", "00")) {
System.out.println("Anlage wird erstellt");
anlage.getData();
System.out.println("");
}
System.exit(0);
}
private void getData() {
// ImportParameter
Zge_Gerel_Data_For_Kne_Kn_Input input = new Zge_Gerel_Data_For_Kne_Kn_Input();
// Hole proxy Instance mit JCO.Client instance
Anlage_PortType proxy = new Anlage_PortType();
proxy.messageSpecifier.setJcoClient(mConnection);
Zge_Gerel_Data_For_Kne_Kn_Output output = new Zge_Gerel_Data_For_Kne_Kn_Output();
input.setI_Bp_Nr("7901514764");
input.setI_View("03");
input.setI_Spras("DE");
Date stichtag = new Date(2006, 9, 22);
input.setI_Stichtag(stichtag);
//Rufe RFC auf
try {
output = proxy.zge_Gerel_Data_For_Kne_Kn(input);
String s = "<?xml version=" + "\"1.0\"" + " encoding=" + "\"ISO-8859-1\"" + " ?>"+ "<Y>" + output.toXml() + "</Y>";
System.out.println(s);
} catch (SystemFaultException e) {
e.printStackTrace();
} catch (ApplicationFaultException e) {
e.printStackTrace();
}
}
}