Announcement

Collapse
No announcement yet.

Tomcat 5.5 kann RMI nicht leiden...

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Tomcat 5.5 kann RMI nicht leiden...

    Vorab: wir entwickeln unter Suse-Linux 9.3...
    Wir bauen aus unserer Webanwendung heraus eine Verbindung zu RMI-Objekten auf.
    Diese kommunizieren dann über das OpenAdaptor-Framework mit einem Fremdsystem.
    Die RMI-Aufrufe aus der OpenAdaptor-Anwendung in unsere Webanwendung hinein funktionieren.
    Andersherum hat bis jetzt auch alles hervorragend funktioniert mit Java 1.4.2 und Tomcat 4.1 (mit SecurityManager).
    Jetzt haben wir aber auf Java 5 und Tomcat 5.5 umgestellt.
    Beim Versuch, eine SocketConnection zu dem Remote-Objekt aufzubauen, gibts dann die AccessControlException: access denied (siehe unten).
    In der catalina.policy des Tomcat haben wir schon alle Varianten der Permissions ausprobiert, ohne Erfolg.
    Der Inhalt der Policy-Datei ist Tomcat-Standard + folgende Einträge für unsere Anwendung:

    <pre>
    // ===== WEBAPP =====
    grant codeBase "file:${catalina.home}/webapps/hsi_e/-" {

    permission java.security.AllPermission;
    permission java.net.SocketPermission "*:1024-", "listen, connect, resolve";
    permission java.lang.RuntimePermission "accessDeclaredMembers";
    permission java.lang.RuntimePermission "accessClassInPackage";
    permission java.lang.reflect.ReflectPermission "suppressAccessChecks";
    permission java.lang.RuntimePermission "getClassLoader";
    permission javax.jdo.spi.JDOPermission "getMetadata";

    };
    </pre>

    Das Ärgerliche ist ja nun, unter java 1.4 und Tomcat 4 funktioniert alles, mit Java 5 und Tomcat 5.5 nicht mehr.
    Gibts noch irgendwelche geheimnisvolle Security-Einstellungen im Tomcat?
    Neuerungen in Java 5, die ich noch beachten muss?
    Ich denke/hoffe immernoch, dass es sich nur um eine fehlende/fehlerhafte Security-Einstellung handelt.
    So langsam macht sich die Verzweiflung breit, bin für jede Hilfe dankbar.

    <pre>
    INFO - de.hsigmbh.cs.server.HSPlanORMIFactory. Requesting manager rmi://pc46:1099/hsi_e_HSPlanCS
    INFO - de.hsigmbh.cs.server.HSPlanORMIFactory. Got manager rmi://pc46:1099/hsi_e_HSPlanCS
    INFO - de.hsigmbh.cs.server.HSPlanORMIFactory ############## Manager-Object is: HSPlanCSManagerImpl_Stub[UnicastRef [liveRef: [endpoint:[192.168.0.46:32923](remote),objID:[7ff040ff:10a3b9cdb00:-8000, 0]]]]
    INFO - de.hsigmbh.cs.server.HSPlanORMIFactory ####### Manager received in getCSManager = HSPlanCSManagerImpl_Stub[UnicastRef [liveRef: [endpoint:[192.168.0.46:32923](remote),objID:[7ff040ff:10a3b9cdb00:-8000, 0]]]]
    ERROR - de.hsigmbh.hsplano.actions.impex.ImportExportActio n.execute(ImportExportAction.java:121) Sending collection of type PPSWSGruppe FAILED
    java.security.AccessControlException: access denied (java.net.SocketPermission 192.168.0.46:32923 connect,resolve)
    at java.security.AccessControlContext.checkPermission (AccessControlContext.java:264)
    at java.security.AccessController.checkPermission(Acc essController.java:427)
    at java.lang.SecurityManager.checkPermission(Security Manager.java:532)
    at java.lang.SecurityManager.checkConnect(SecurityMan ager.java:1034)
    at sun.rmi.transport.tcp.TCPChannel.checkConnectPermi ssion(TCPChannel.java:119)
    at sun.rmi.transport.tcp.TCPChannel.newConnection(TCP Channel.java:148)
    at sun.rmi.server.UnicastRef.invoke(UnicastRef.java:9 4)
    at de.hsigmbh.cs.oaClient.imp.HSPlanCSManagerImpl_Stu b.exportBOs(Unknown Source)
    .
    .
    .
    ERROR - org.apache.struts.action.RequestProcessor.processA ctionPerform(RequestProcessor.java:484) Error calling CSRMI method
    java.security.AccessControlException: access denied (java.net.SocketPermission 192.168.0.46:32923 connect,resolve)
    at java.security.AccessControlContext.checkPermission (AccessControlContext.java:264)
    at java.security.AccessController.checkPermission(Acc essController.java:427)
    at java.lang.SecurityManager.checkPermission(Security Manager.java:532)
    at java.lang.SecurityManager.checkConnect(SecurityMan ager.java:1034)
    at sun.rmi.transport.tcp.TCPChannel.checkConnectPermi ssion(TCPChannel.java:119)
    at sun.rmi.transport.tcp.TCPChannel.newConnection(TCP Channel.java:148)
    at sun.rmi.server.UnicastRef.invoke(UnicastRef.java:9 4)
    at de.hsigmbh.cs.oaClient.imp.HSPlanCSManagerImpl_Stu b.exportBOs(Unknown Source)
    at de.hsigmbh.cs.server.HSPlanCSWrapper.bulkExportObj (HSPlanCSWrapper.java:153)
    at de.hsigmbh.hsplano.actions.impex.ImportExportActio n.execute(ImportExportAction.java:121)
    at org.apache.struts.action.RequestProcessor.processA ctionPerform(RequestProcessor.java:484)
    at org.apache.struts.action.RequestProcessor.process( RequestProcessor.java:274)
    .
    .
    .
    </pre>
Working...
X