2017-08-30 6 views
0

J'ai configuré Orbeon 2017.1 PE pour qu'il fonctionne avec Oracle 11g, Apache Tomcat-7.0.34. J'ai déployé dans tomcat/webapps. Cela fonctionne out-of-box, mais quand j'essaye de configurer pour utiliser Oracle comme base de données It failed.Orbeon Forms avec Oracle (Une erreur s'est produite lors du traitement de la requête.)

  • Le license.xml est ok
  • J'ai créé le schéma Oracle et exécuté le script SQL Oracle. Les tables sont créées mais sont vides.
  • Le charset est AL32UTF8
  • J'ai mis les pilotes Oracle dans le tomcat/lib
  • mon context.xml intérieur balise contexte:

    <Context> 
    
        <!-- Default set of monitored resources --> 
        <WatchedResource>WEB-INF/web.xml</WatchedResource> 
    
        <!-- Uncomment this to disable session persistence across Tomcat restarts --> 
        <!-- 
        <Manager pathname="" />--> 
        <Resource name="jdbc/oracle" auth="Container" 
           type="javax.sql.DataSource" 
           initialSize="3" maxActive="10" maxIdle="20" 
           maxWait="30000" 
           validationQuery="select * from dual" 
           driverClassName="oracle.jdbc.OracleDriver" 
           poolPreparedStatements="true" 
           username="orbeon" 
           password="orbeon"   
        url="jdbc:oracle:thin:@//my.database.server:1521/service"/> 
    
        </Context> 
    
  • J'ai aussi changé/webapps/Orbeon/WEB-INF/web.xml pour obtenir la config/propriétés prod.xml:

     <resource-ref> 
          <description>DataSource</description> 
          <res-ref-name>jdbc/oracle</res-ref-name> 
          <res-type>javax.sql.DataSource</res-type> 
          <res-auth>Container</res-auth> 
         </resource-ref> 
    

et

<resource-ref> 
    <description>DataSource</description> 
    <res-ref-name>jdbc/oracle</res-ref-name> 
    <res-type>javax.sql.DataSource</res-type> 
    <res-auth>Container</res-auth> 
    </resource-ref> 
  • dans /resource/config/properties.prod

    <properties xmlns:xs="http://www.w3.org/2001/XMLSchema" 
         xmlns:oxf="http://www.orbeon.com/oxf/processors"> 
    
        <property as="xs:string" name="oxf.fr.persistence.provider.*.*.*" value="oracle"/> 
    </property> 
    

  • Puis, quand je commence Tomcat semble ok:

    INFO: Deploying web application directory ........./apache-tomcat-7.0.34/webapps/orbeon 
    Starting Orbeon Forms 2017.1.201706222319 PE 
    Initializing Resource Manager with: { 
         "oxf.resources.factory":            "org.orbeon.oxf.resources.PriorityResourceManagerFactory", 
        "oxf.resources.priority.2":          "org.orbeon.oxf.resources.WebAppResourceManagerFactory", 
        "oxf.resources.priority.2.oxf.resources.webapp.rootdir":   "/WEB-INF/resources", 
        "oxf.resources.priority.6":           "org.orbeon.oxf.resources.ClassLoaderResourceManagerFactory" 
    } 
        Using run mode: prod 
        Using properties file: oxf:/config/properties-prod.xml 
        This installation of Orbeon Forms 2017.1.201706222319 PE is licensed to: my name/my org/my email and expires on 2017-11-25 
        Property oxf.log4j-config not set. Skipping logging initialization. 
        Context listener - Context initialized. 
        initializing 
        configuring:  FilterSettings([email protected][Permits = 2],(/fr/.*)|(/xforms-server),(?!/([^/]+)/service/).+\.(gif|css|pdf|json|js|coffee|map|png|jpg|xsd|htc|ico|swf|html|htm|txt)) 
        d’ag. 30, 2017 9:24:39 AM org.apache.catalina.startup.HostConfig  deployDirectory 
        INFO: Deploying web application directory ..../apache-tomcat-7.0.34/webapps/manager 
        d’ag. 30, 2017 9:24:39 AM org.apache.catalina.startup.HostConfig deployDirectory 
        INFO: Deploying web application directory ..../apache-tomcat-7.0.34/webapps/examples 
        d’ag. 30, 2017 9:24:40 AM org.apache.coyote.AbstractProtocol start 
        INFO: Starting ProtocolHandler ["http-bio-8080"] 
        d’ag. 30, 2017 9:24:40 AM org.apache.coyote.AbstractProtocol start 
        INFO: Starting ProtocolHandler ["ajp-bio-8009"] 
        d’ag. 30, 2017 9:24:40 AM org.apache.catalina.startup.Catalina start 
        INFO: Server startup in 10512 ms 
        Servlet initialized. 
    
  • Et quand je vais à http://localhost:8080/orbeon dans le navigateur que ce message apparaît:

    An error has occurred while processing the request. 
    
  • Et le journal:

    event: {"request": "1", "session": "36072B966078D374692205D2A8529ECB", "source": "limiter", "message": "start: nofilter", "path": "/home/", "method": "GET"} 
        not setting credentials headers because credentials are not found 
        event: {"request": "1", "session": "36072B966078D374692205D2A8529ECB", "source": "service", "message": "start: handle"} 
        /home/ - Received request 
        error caught {controller: "oxf:/apps/home/page-flow.xml", method: "GET", path: "/home/"} 
    
    +----------------------------------------------------------------------------------------------------------------------+ 
    |An Error has Occurred                          | 
    |----------------------------------------------------------------------------------------------------------------------| 
    |URL generator found null URL for config:                     | 
    |<config/>                            | 
    |----------------------------------------------------------------------------------------------------------------------| 
    | 
    

    ... et beaucoup plus des logs ...

Qu'est-ce qui me manque? J'obtiens correctement le fichier properties-prod.xml. Il n'y a pas d'erreur de connexion à la base de données dans le journal.

Nous vous remercions de votre aide.

Plus d'info:

Quand je référence à la properties.local ou quoi que ce porte le nom est quand le problème commence. Si je mets dans le web.xml un fichier qui n'existe pas en tant que properties.local, cela fonctionne, mais en utilisant le mode Exist-db. Ai-je besoin de commenter une ligne de web.xml à propos de exist-db?

+0

Ceci est difficile à déboguer à distance;). Mais commençons par un certain nombre de choses: 1. Dans 'WEB-INF/resources/config', pouvez-vous essayer de renommer votre' properties-prod.xml' en 'properties-local.xml'? (N'utilisez pas 'properties-prod.xml' sauf si vous voulez avoir des propriétés différentes pour la production et la non-production.) 2. Au lieu d'utiliser' context.xml', mettez le '' dans 'server.xml' de Tomcat, comme indiqué dans [cet exemple] (https://doc.orbeon.com/installation/tomcat.html#custom-context-within-serverxml). Vous nous direz si cela aide! – avernet

+0

Terminé. Le même résultat :-( Merci beaucoup Dans le fichier web.xml, il y a une propriété qui spécifie le nom des propriétés-prod.xml ou propriétés-local, j'ai changé pour local et renommé le fichier J'ai aussi changé la balise resource au fichier server.xml comme indiqué dans l'exemple: –

+0

Joan, pourriez-vous essayer de télécharger à nouveau une copie verbatim d'Orbeon Forms PE 2017.1, en la décompressant, en plaçant le 'properties-local.xml' ci-dessus dans' WEB-INF/config', avec * aucun autre changement * dans n'importe quel fichier, et voir ce que cela vous donne? – avernet

Répondre

0

Probablement Oracle n'est pas le problème. Étant donné que la base de données est toujours vide, vous verrez un message d'erreur concernant la couche de persistance lorsque vous enregistrez le premier formulaire. Mais vous voyez déjà l'erreur lorsque vous démarrez la page Web.
Peut-être avez-vous configuré UserDatabase pour l'authentification et orbeon-auth.war n'est pas déployé?

+0

orbeon-auth est déployé, et je n'ai rien configuré sur l'authentification –

+0

Dois-je commenter une ligne de web.xml à propos d'exister -db? Insert dans le fichier properties-local.xml: hoila

0

je suis le portage de deux formes de Orbeon CE avec postgresql (Orbeon Forms 2016.3.201612302139 CE) à Orbeon PE avec Oracle (Orbeon Forms 2017.1.201706222319 PE)

portage de la première forme est en douceur; J'ai dû changer seulement la source de données de postgresql à oracle.
Le portage du second formulaire a cependant un comportement similaire à celui de la vôtre: Dans le navigateur ou le formulaire a été visualisé le message d'erreur:
Une erreur s'est produite lors du traitement de la demande.
Dans le journal était l'erreur suivante:

+-----------------------------------------------------------------+ 
|An Error has Occurred           | 
|-----------------------------------------------------------------| 
|assertion failed             | 
|-----------------------------------------------------------------| 

Le message dans le navigateur est le même que dans votre expérience, l'erreur dans le journal est cependant différent.

J'ai réduit la forme, en essayant de trouver la cause.
De manière surprenante, il s'agissait d'une instruction xxf: lang() dans un calcul.
Pour reproduire le problème, je peux créer un nouveau formulaire et l'insérer dans control-1 xxf: lang() comme valeur calculée ou comme valeur initiale.
Lorsque je teste ce formulaire dans CE, le formulaire est visualisé. Dans PE au lieu du formulaire le message: "Une erreur s'est produite lors du traitement de la demande". est visualisé. Donc, dans mon cas, le message "Une erreur est survenue lors du traitement de la demande." dans un premier moment, ressemblait aussi à un problème d'oracle, parce que je portais de postgresql à Oracle. Mais maintenant il est clair que ce n'était pas un problème d'Oracle, mais dépend des logiciels CE et PE.
NB. J'ai dû installer un PE d'essai, car en CE je ne peux pas faire de tests avec Oracle.
Donc, mes commentaires sont les suivants: lors du portage de formulaires de CE à PE, il peut y avoir des formulaires qui commencent en CE mais pas en PE.