WebLogic 12c problème de l'immigration avec Unmarshalling JAXB

nous avons une application qui tourne actuellement sur WebLogic 10.3.5.0 et nous sommes en train de migrer vers WL 12.1.2.0.0. Nous éprouvons des problèmes avec le désamorçage des appels WS vers une autre application. Nous sommes familiers avec l' gares de bogue lors de la mise à jour, cependant il semble que ce problème n'est pas le même.

quelque chose de bizarre à noter est que cela fonctionne très bien sur les serveurs DEV/Test de la même version WL, mais retournera l'erreur suivante lorsqu'il sera déployé localement (doit être un manque de concordance entre les paramètres env et de configuration?):

JAXB unmarshalling exception: null; nested exception is javax.xml.bind.UnmarshalException - with linked exception: [org.xml.sax.SAXParseException; cvc-complex-type.3.2.2: Attribute 'xsi:nil' is not allowed to appear in element 'error'.]

D'après le message d'erreur, il semble qu'il ne reconnaisse pas l'espace de noms xsi ou quelque chose. Le schéma n'a pas changé de 10.3.5, et ne devrait pas être la racine du problème. Quelqu'un a une idée ou même un point de départ pour regarder?

merci Beaucoup

Modifier: Ajouter web.xml et weblogic.xml

web.xml

<?xml version="1.0" encoding="UTF-8"?>
<web-app id="cpc-mi" version="3.0"
    xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd">
...
</web-app>

weblogic.xml

<?xml version="1.0" encoding="UTF-8"?>
<weblogic-web-app
    xsi:schemaLocation="http://java.sun.com/xml/ns/javaee 
        http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd 
        http://xmlns.oracle.com/weblogic/weblogic-web-app 
        http://xmlns.oracle.com/weblogic/weblogic-web-app/1.4/weblogic-web-app.xsd" 
    xmlns="http://xmlns.oracle.com/weblogic/weblogic-web-app" 
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
...
</weblogic-web-app>
10
demandé sur jmeanor 2015-08-24 20:56:29

3 réponses

WebLogic 12c (WLS 12c) a ses propres bibliothèques jar y compris et jaxb. Je travaille déjà avec ce serveur, et quand je veux utiliser JSF (une autre bibliothèque que WebLogic vient avec) je dois dire WLS 12c qui ignore ses propres bibliothèques JSF et utiliser la mienne, inclus dans war/ear.

Vous pouvez utiliser weblogic.xml descripteur à l'intérieur de WEB-INF dossier pour y parvenir. Ici vous êtes avec un de mes weblogic.xml

<?xml version="1.0" encoding="UTF-8"?>
<weblogic-web-app xmlns="http://xmlns.oracle.com/weblogic/weblogic-web-app">

  <container-descriptor>
    <prefer-application-packages> 
      <package-name>javax.faces.*</package-name> 
      <package-name>com.sun.faces.*</package-name> 
      <package-name>com.bea.faces.*</package-name> 
      <package-name>org.apache.commons.io.*</package-name>
      <package-name>org.apache.commons.fileupload.*</package-name>
    </prefer-application-packages> 

    <prefer-application-resources> 
      <resource-name>javax.faces.*</resource-name> 
      <resource-name>com.sun.faces.*</resource-name> 
      <resource-name>com.bea.faces.*</resource-name> 
      <resource-name>META-INF/services/javax.servlet.ServletContainerInitializer</resource-name>
      <resource-name>META-INF/services/com.sun.faces.*</resource-name>
    </prefer-application-resources>

    <show-archived-real-path-enabled>true</show-archived-real-path-enabled>
  </container-descriptor>
</weblogic-web-app>

bien sûr, vous incluez votre propre dépendance jaxb dans votre guerre / oreille et tell WLS 12c ignore sa bibliothèque jaxb, en utilisant java.xml.bind.* valeur package-name balise et peut-être aussi pour l' resource-name balise.

j'Espère que ça aide.

1
répondu malaguna 2015-09-09 10:39:28

je sais très peu de choses à ce sujet et je ne suis pas sûr que ce soit même vaguement correct, mais mettre xmlns: xsi="http://www.w3.org/2001/XMLSchema-instance" dans L'instance XML make it work?

0
répondu heyitsmyusername 2015-08-24 18:30:02

nous avions un problème similaire: L'analyse des messages de soap fonctionnait en 10.3.x, mais en échec au 12.x. Le problème s'est avéré être un xercesImpl périmé.pot. Je doute que ce soit ce qui se passe avec vous, mais je pensais partager l'expérience juste au cas où.

notez que le xercesimpl périmé.jar a été inclus dans un de nos fichiers de guerre déployés comme une bibliothèque, pas n'importe quoi expédié par Oracle dans le cadre de WebLogic 12

0
répondu chrisl08 2015-09-10 16:28:32