2010-10-29 29 views
2

J'essaie de mettre à jour mon application de Weblogic 8.1 SP 6 à Weblogic 10.3. Pour cela, j'ai installé Weblogic 10.3 et créé un domaine. WLS 10.3 a démarré avec succès depuis mon domaine. J'ai récupéré le code dans Java 1.6 et déployé avec succès sans aucun changement de code.Weblogic 10.3 - Servlet a échoué avec Exception

J'ai déployé l'application et essayé de lancer la page de bienvenue (connexion) de l'application.

Puis je vois l'erreur ci-dessous:

Predefined Constants Object: [email protected] 
DataSourceName='null' 
sessionTimeOutLimit='36000' 
00:39:31==>Servlet: getRemoteUser=null 
00:39:31==>Servlet: getHeader=null 
00:39:31==>count=0 
<Oct 29, 2010 12:39:31 AM MDT> <Error> <HTTP> <BEA-101020> <[[email protected] - appName: 'mbqccrpt', name: 'xyzControllerServlet', context-path: '/xyzControllerServlet', spec-version: 'null'] Servlet failed with Exception 
java.lang.NullPointerException 
     at com.abc.xyz272.servlets.xyzControllerServlet.processRequest(Unknown Source) 
     at com.abc.xyz272.servlets.xyzControllerServlet.doPost(Unknown Source) 
     at com.abc.xyz272.servlets.xyzControllerServlet.doGet(Unknown Source) 
     at javax.servlet.http.HttpServlet.service(HttpServlet.java:707) 
     at javax.servlet.http.HttpServlet.service(HttpServlet.java:820) 
     Truncated. see log file for complete stacktrace 

J'ai une autre question. L'application fonctionnant sur Weblogic 8.1 utilise également le serveur apache pour lancer les pages statiques. Pour mettre à jour l'application dans weblogic 10.3, est-ce que nous avons besoin du serveur apache?

+0

Avez-vous lu le guide de mise à niveau? http://download.oracle.com/docs/cd/E12840_01/wls/docs103/upgrade/index.html – gulbrandr

Répondre

5

Je peux répondre à la 2ème partie de votre question. Le but principal généralement utilisé pour un serveur Apache en face de Weblogic est de décharger des contenus statiques tels que des images, des fichiers HTML, JS, CSS sur le serveur web Apache. Seules les requêtes dynamiques sont transmises au Weblogic, réduisant ainsi le trafic, surtout si le pare-feu est utilisé.

Il s'agit d'une décision architecturale qui ne dépend pas de la version de Weblogic. Au contraire, cela dépend de certaines préoccupations telles que Clustering des serveurs d'applications (en utilisant Apache comme équilibreur de charge), Volume de données statiques puisque Apache fournit des données statiques assez rapidement - alors pourquoi pousser cette charge sur Weblogic.

Et au sujet de votre NullPointerException, il semble être parce que votre source de données est mal défini (il montre comme nulle), mais vous appelez certaines opérations sur ce

1

getRemoteUser() null retour:

Comme la méthode getRemoteUser() est obsolète dans Weblogic 10.3, elle renverra une valeur nulle lorsque les utilisateurs accèderont à l'application. Pour éviter ce problème, remplacez getRemoteUser() par la méthode getHeader(“proxy-remote-user”) pour renvoyer l'utilisateur distant sous forme de chaîne.

String usr= request.getHeader("proxy-remote-user"); 

Problème avec Servlet Chemin Mapping:

Nous avons la cartographie Servlet suivante dans web.xml qui travaillait bien dans Weblogic 8,1

<servlet-mapping> in web.xml 
    <servlet> 
     <servlet-name>ServletName</servlet-name> 
     <servlet-class>com.abc.servlets.servletname</servlet-class> 
    </servlet> 
    <servlet-mapping> 
     <servlet-name> ServletName </servlet-name> 
     <url-pattern>/*.*</url-pattern> 
    </servlet-mapping> 

Mais après la migration vers 10.3, le même mappage de servlet ne fonctionne pas car la requête va dans la boucle infinie lors du lancement de la page d'accueil de l'application. Étant donné que l'application Web utilise Servlet comme un contrôleur où toutes les demandes frappe le contrôleur et sont ensuite transmises à JSP respectifs. Pour éviter ce problème, nous avons remplacé url-pattern "/ *" par "/" dans le mappage de servlet comme ci-dessous.

<servlet-mapping> 
     <servlet-name> ServletName </servlet-name> 
     <url-pattern>/ServletName </url-pattern> 
</servlet-mapping> 
2

Il y a quelques semaines, je suis aussi sur cette page, le filtrage Internet pour une solution adaptée à ce même problème spec version: « null »] Servlet a échoué avec l'exception, jusqu'au moment quand tout le reste n'a pas fonctionné sauf la solution que je me suis retrouvée après beaucoup d'effort.

J'ai rencontré ce problème lors de la migration d'une application du serveur d'applications 10g d'Oracle vers Weblogic 10.3.5.

Selon la pratique légendaire, tout en faisant la migration, nous avions placé un weblogic.xml fichier dans le dossier /WEB-INF/ et qui était le problème réel. Je viens de remplacer ce fichier incorrect weblogic.xml avec ma propre version de weblogic.xml fichier et les choses ont bien fonctionné.

Même si le fichier weblogic.xml défectueux avait beaucoup d'autres éléments à l'intérieur de l'élément racine pour les raisons les plus connues de la personne qui avait initialement placèrent, dans ma version de ce fichier DD j'avais seulement la racine élément. Et finalement, le problème a été résolu. Cela vaut donc la peine d'en tenir compte.