© Copyright International Business Machines Corporation 2006. All rights reserved.
© Copyright IBM Deutschland GmbH 2006. Alle Rechte vorbehalten.
Wenn ein Enterprise JavaBean-Modul (EJB-Modul) zwischen mehreren EAR-Projekten, die auf WebSphere Application Server ausgeführt werden, gemeinsam genutzt wird, und es wird eines der EAR-Projekte vom Server entfernt, dann müssen die übrigen EAR-Projekte neu gestartet werden, um auf die Ressourcen (wie zum Beispiel EJB-Beans) in dem EJB-Projekt zugreifen zu können.
Wenn Sie diese Aktion nicht durchführen, werden möglicherweise Fehlernachrichten der Art wie unten aufgeführt angezeigt. Diese Fehler treten auf, weil der JNDI-Name (JNDI: Java Naming and Directory Interface) in einem EJB-Projekt vom Server entfernt wird, wenn die EAR entfernt wird.
Der folgende Absatz enthält eine Beispielfehlernachricht:
00000028 SystemOut O javax.naming.NameNotFoundException: Context: myCell/nodes/myNode/servers/server1, name: ejb/ejbs/Session20Home: First component in name Session20Home not found. [Root exception is org.omg.CosNaming.NamingContextPackage.NotFound: IDL:omg.org/CosNaming/NamingContext/NotFound:1.0]
at com.ibm.ws.naming.jndicos.CNContextImpl.processNotFoundException(CNContextImpl.java:4730)
at com.ibm.ws.naming.jndicos.CNContextImpl.doLookup(CNContextImpl.java:1907)
at com.ibm.ws.naming.jndicos.CNContextImpl.doLookup(CNContextImpl.java:1862)
at com.ibm.ws.naming.jndicos.CNContextImpl.lookupExt(CNContextImpl.java:1552)
at com.ibm.ws.naming.jndicos.CNContextImpl.lookup(CNContextImpl.java:1354)
at com.ibm.ws.naming.util.WsnInitCtx.lookup(WsnInitCtx.java:172)
at javax.naming.InitialContext.lookup(InitialContext.java:363)
at com.ibm.ivj.ejb.runtime.AbstractAccessBean.lookupAndCacheHome(AbstractAccessBean.java:224)
at com.ibm.ivj.ejb.runtime.AbstractAccessBean.getGlobalHome(AbstractAccessBean.java:216)
at com.ibm.ivj.ejb.runtime.AbstractAccessBean.getHome(AbstractAccessBean.java:249)
at ejbs.Session20AccessBean.ejbHome(Session20AccessBean.java:50)
at ejbs.Session20AccessBean.instantiateEJB(Session20AccessBean.java:80)
at ejbs.Session20AccessBean.foo(Session20AccessBean.java:91)
Angenommen, Ihr Anwendungsclientprojekt ist wie folgt konfiguriert:
- für die Projektfacette für Java ist Version 1.4 angegeben
- bei der Zielserverlaufzeit für dieses Projekt ist in der Serverkonfiguration die Option für die sofortige Methodenersetzung aktiviert
Möglicherweise stellen Sie fest, dass die Schaltfläche 'Wieder aufnehmen' in der Debugsicht nicht korrekt funktioniert. Sie führen zum Beispiel die Anwendung auf dem Server in Debugmodus aus, versuchen dann, die Quelle während der Laufzeit zu ändern, und verwenden anschließend die Schaltfläche 'Wieder aufnehmen', um das Debugging für die Anwendung fortzusetzen. Eventuell werden die Änderungen der sofortigen Methodenersetzung am Quellcode nicht übernommen.
Klicken Sie zwei Mal auf die Schaltfläche 'Wieder aufnehmen', damit die Laufzeitänderungen in Kraft treten können.
Hinweis: Dieses Problem tritt nicht auf, wenn Sie für die Projektfacette für Java Version 5.0 angeben.
Wenn Sie eine Dienstprogramm-JAR-Datei für ein Webprojekt zu Webbibliotheken hinzufügen und auf Klassen innerhalb der JAR-Datei in Ihrem Code verweisen, wird möglicherweise ein Fehler java.lang.NoClassDefFoundError gemeldet, wenn Sie versuchen, die Anwendung auf dem Server auszuführen.
Zur Umgehung des Problems sollten Sie, nachdem Sie eine Dienstprogramm-JAR-Datei zu dem EAR-Modul hinzugefügt haben, die JAR-Datei zu den J2EE-Modulabhängigkeiten des Webprojekts hinzufügen. Führen Sie hierzu die folgenden Schritte aus:
- Fügen Sie eine Dienstprogramm-JAR-Datei zu dem EAR-Modul hinzu. Nähere Informationen hierzu enthält das Thema Adding project utility JAR files in der Produkthilfe.
- Klicken Sie mit der rechten Maustaste auf das Webprojekt, und wählen Sie Eigenschaften aus. Das Dialogfenster 'Eigenschaften' wird geöffnet.
- Wählen Sie J2EE-Modulabhängigkeiten aus.
- Wählen Sie auf der Registerkarte J2EE-Module unter der Spalte JAR/Modul das Markierungsfeld neben Ihrer Dienstprogramm-JAR-Datei aus.
Wenn der ferne Server gestoppt wird, dauert es möglicherweise lange, bis der Assistent 'Neuer Server' vollständig beendet wird, nachdem Sie auf die Schaltfläche Fertig stellen geklickt haben. Sie können das Problem umgehen, indem Sie den fernen Server starten, bevor Sie im Assistenten 'Neuer Server' auf Fertig stellen klicken.
Wenn ein gesicherter WebSphere Application Server Version 6.1 gestartet wird und Sie im Servereditor den Serververbindungstyp entweder in RMI (Methodenaufruf über Remotezugriff) oder SOAP ändern, wird nach dem Speichern der Änderungen im Servereditor eventuell die folgende Fehlernachricht mit dem Inhalt angezeigt, dass die Publizierung fehlgeschlagen ist:
Es wird keine Publizierung ausgeführt, da der Server nicht gestartet wurde. Starten Sie den Server, bevor Sie die Publizierungsoperation ausführen.
Sie können diesen Fehler problemlos ignorieren. Optional können Sie, nachdem in der Sicht 'Server' der Serverstatus Gestartet angezeigt wird, einen Publizierungsbefehl ausführen. Klicken Sie hierzu in der Sicht 'Server' mit der rechten Maustaste auf den Server, und wählen Sie Publizieren aus.