Autor Thema: SAP Java Connector  (Gelesen 15831 mal)

Offline Tannibal

  • Aktives Mitglied
  • ***
  • Beiträge: 242
  • Geschlecht: Männlich
SAP Java Connector
« am: 16.02.17 - 15:16:44 »
Hallo ihr,

nachdem die COM/librfc.dll-Schnittstelle im SAP-GUI abgekündigt wurde, musste ich mir eine neue Schnittstelle zu SAP suchen.

Ich habe den SAP Java Connector gefunden und auch in Eclipse zum Laufen bekommen.

Nun scheitere ich aber den Test in einem Java Agent nachzustellen.
Der Connector besteht aus den Dateien: sapjco3.dll, sapjco3.jar und sapjco3.pdb

Wo muss denn die Dateien im Agent hinzufügen, damit ich sie sauber verwenden kann?

Wenn ich nur die .jar hinzufüge, erkennt er zwar die Klassen aber bekomme trotzdem eine Exception.

Danke
Gruß, Daniel
----------------
14x Domino 9FP10/10FP6
inkl. Traveler , LEI, Sametime, Connections
1,2k Notes-Clients 9/10

Offline eknori

  • @Notes Preisträger
  • Moderatoren
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 11.627
  • Geschlecht: Männlich
Re: SAP Java Connector
« Antwort #1 am: 16.02.17 - 15:44:43 »
Und welche?

Vermutlich sind die jars mit Java 8 erstellt.

Offline Tannibal

  • Aktives Mitglied
  • ***
  • Beiträge: 242
  • Geschlecht: Männlich
Re: SAP Java Connector
« Antwort #2 am: 16.02.17 - 16:08:01 »
Meistens das:

Code
Exception in thread "AgentThread: JavaAgent" java.lang.NoClassDefFoundError: com.sap.conn.jco.JCoDestinationManager
	at JavaAgent.step1Connect(Unknown Source)
	at JavaAgent.NotesMain(Unknown Source)
	at lotus.domino.AgentBase.runNotes(Unknown Source)
	at lotus.domino.NotesThread.run(Unknown Source)
Caused by: java.lang.ClassNotFoundException: com.sap.conn.jco.JCoDestinationManager
	at lotus.domino.AgentLoader.loadClass(Unknown Source)
	at java.lang.ClassLoader.loadClass(ClassLoader.java:642)
	... 4 more

Wenn ich die .jar in jvm\lib\ext lege bekomme eine Security-Meldung, nach Anpassung der java.policy lande ich aber beim gleichen Fehler wie oben.


EDIT: jetzt hat es seltsamerweise funktioniert, muss aber noch prüfen unter welcher Konstellation..
EDIT2: es funktioniert, wenn die .jar im Agent hinzugefügt wurde, die java.policy angepasst und die dll über eine Systemvariable eingebunden wird. Eher unschön.
            Ansonsten lande ich in einem: java.lang.UnsatisfiedLinkError: sapjco3 (Not found in java.library.path)
« Letzte Änderung: 16.02.17 - 16:48:47 von Tannibal »
Gruß, Daniel
----------------
14x Domino 9FP10/10FP6
inkl. Traveler , LEI, Sametime, Connections
1,2k Notes-Clients 9/10

Offline Tannibal

  • Aktives Mitglied
  • ***
  • Beiträge: 242
  • Geschlecht: Männlich
Re: SAP Java Connector
« Antwort #3 am: 21.02.17 - 09:09:43 »
Sonst noch eine Idee wie ich das direkt in der Datenbank zum Laufen bekomme?
Gruß, Daniel
----------------
14x Domino 9FP10/10FP6
inkl. Traveler , LEI, Sametime, Connections
1,2k Notes-Clients 9/10

Offline jBubbleBoy

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 1.249
  • Geschlecht: Männlich
Re: SAP Java Connector
« Antwort #4 am: 21.02.17 - 18:07:18 »
Ich denke es läuft?

Probier mal die DLL in das Notes-Programmverzeichnis anzulegen, wenn das geht, dann kann die DB sich ohne viel Aufwand selber "lauffähig" machen.
Gruss Erik :: Freelancer :: Notes, Java, Web, VBA und DomNav 2.5 / NSE 0.14
--
Nur ein toter Bug, ist ein guter Bug!

Offline Tannibal

  • Aktives Mitglied
  • ***
  • Beiträge: 242
  • Geschlecht: Männlich
Re: SAP Java Connector
« Antwort #5 am: 22.02.17 - 13:09:14 »
Problem ist, dass ich die Funktion an den Clients benötige, da wir einige Masken haben die bestimmte Werte aus SAP benötigen.
Daher möchte ich so wenig manuellen Aufwand wie möglich (weltweit und so...)

Aber du hattest Recht, dll ins Programmverzeichnis und jar in jvm/lib/ext.
In die java.pol habe ich ein "permission java.lang.RuntimePermission "getClassLoader";"  gepackt.
Entscheidend war wohl ein "Clean Project"

Weitere Tipps gerne willkommen :)
Gruß, Daniel
----------------
14x Domino 9FP10/10FP6
inkl. Traveler , LEI, Sametime, Connections
1,2k Notes-Clients 9/10

Offline jBubbleBoy

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 1.249
  • Geschlecht: Männlich
Re: SAP Java Connector
« Antwort #6 am: 22.02.17 - 13:26:17 »
Die jar-Dateien würde ich nicht auf dem PC ablegen, sondern in der aktuellen DB belassen, welchen Vorteil bringt das?
Java-Archive können auch über die notes.ini bekannt gemacht werden; JAVAUSERCLASSES=...
Einen java.policy Eintrag bezüglich ClassLoader musste ich noch nie machen ???
Gruss Erik :: Freelancer :: Notes, Java, Web, VBA und DomNav 2.5 / NSE 0.14
--
Nur ein toter Bug, ist ein guter Bug!

Offline Tannibal

  • Aktives Mitglied
  • ***
  • Beiträge: 242
  • Geschlecht: Männlich
Re: SAP Java Connector
« Antwort #7 am: 22.02.17 - 13:41:27 »
Die Jar-Ablage macht keinen Unterschied.

Wenn ich die java-policy im Standard belasse erhalte ich das.
Code
Exception in thread "AgentThread: JavaAgent" java.lang.ExceptionInInitializerError
	at java.lang.J9VMInternals.initialize(J9VMInternals.java:221)
	at com.sap.conn.jco.JCo.createJCo(JCo.java:32)
	at com.sap.conn.jco.JCo.<clinit>(JCo.java:26)
	at java.lang.J9VMInternals.initializeImpl(Native Method)
	at java.lang.J9VMInternals.initialize(J9VMInternals.java:199)
	at com.sap.conn.jco.JCoDestinationManager.getDestination(JCoDestinationManager.java:104)
	at JavaAgent.step1Connect(Unknown Source)
	at JavaAgent.NotesMain(Unknown Source)
	at lotus.domino.AgentBase.runNotes(Unknown Source)
	at lotus.domino.NotesThread.run(Unknown Source)
Caused by: java.security.AccessControlException: Access denied (java.lang.RuntimePermission getClassLoader)
	at java.security.AccessController.throwACE(AccessController.java:121)
	at java.security.AccessController.checkPermission(AccessController.java:194)
	at java.lang.SecurityManager.checkPermission(SecurityManager.java:544)
	at COM.ibm.JEmpower.applet.AppletSecurity.superDotCheckPermission(AppletSecurity.java:1455)
	at COM.ibm.JEmpower.applet.AppletSecurity.checkRuntimePermission(AppletSecurity.java:1317)
	at COM.ibm.JEmpower.applet.AppletSecurity.checkPermission(AppletSecurity.java:1619)
	at COM.ibm.JEmpower.applet.AppletSecurity.checkPermission(AppletSecurity.java:1470)
	at java.lang.ClassLoader.getParent(ClassLoader.java:431)
	at com.sap.conn.jco.ext.Environment.<clinit>(Environment.java:128)
	at java.lang.J9VMInternals.initializeImpl(Native Method)
	at java.lang.J9VMInternals.initialize(J9VMInternals.java:199)
	... 9 more

Liegt bestimmt auch nur irgendwo in meiner Unwissenheit der Java-Entwicklung unter Notes begraben  :P
Gruß, Daniel
----------------
14x Domino 9FP10/10FP6
inkl. Traveler , LEI, Sametime, Connections
1,2k Notes-Clients 9/10

 

Impressum Atnotes.de  -  Powered by Syslords Solutions  -  Datenschutz