1

seam-gen ツール (ear ファイル) を使用して jboss seam 2.2 アプリケーションを作成しました。アプリケーションは jboss 4.3 で正常に動作します。

seam 参照ドキュメントで入手可能なドキュメントに従って jar を変更した後、websphere 7 でアプリケーションを実行することができました。

問題: データベースに接続するための永続性を構成するために多くの方法を試しましたが、うまくいきませんでした。アプリケーションを DB (oracle) に接続する正しい方法は何ですか? websphere 7 内で動作するデータ ソースを作成しましたが、(components.xml) および (persistence.xml) 内の正しい構成が何であるかわかりません。

前もって感謝します

1-persistence.xml

  <?xml version="1.0" encoding="UTF-8"?>
<!-- Persistence deployment descriptor for prod profile -->
<persistence xmlns="http://java.sun.com/xml/ns/persistence" 
             xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
             xsi:schemaLocation="http://java.sun.com/xml/ns/persistence http://java.sun.com/xml/ns/persistence/persistence_1_0.xsd" 
             version="1.0">

   <persistence-unit name="shbCalc">
      <provider>org.hibernate.ejb.HibernatePersistence</provider>
      <jta-data-source>shbCalcDS</jta-data-source>
      <properties>
         <property name="hibernate.transaction.manager_lookup_class" value="org.hibernate.transaction.WebSphereExtendedJTATransactionLookup"/>
         <property name="hibernate.dialect" value="org.hibernate.dialect.OracleDialect"/>
         <property name="hibernate.show_sql" value="true"/>
         <property name="hibernate.hbm2ddl.auto" value="none"/>
      </properties>
   </persistence-unit>

</persistence>

2- components.xml

<?xml version="1.0" encoding="UTF-8"?>
<components xmlns="http://jboss.com/products/seam/components"
            xmlns:core="http://jboss.com/products/seam/core"
            xmlns:persistence="http://jboss.com/products/seam/persistence"
            xmlns:security="http://jboss.com/products/seam/security"
            xmlns:transaction="http://jboss.com/products/seam/transaction"            
            xmlns:drools="http://jboss.com/products/seam/drools"
            xmlns:mail="http://jboss.com/products/seam/mail"
            xmlns:web="http://jboss.com/products/seam/web"
            xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
            xsi:schemaLocation=
                "http://jboss.com/products/seam/core http://jboss.com/products/seam/core-2.2.xsd
                 http://jboss.com/products/seam/persistence http://jboss.com/products/seam/persistence-2.2.xsd
                 http://jboss.com/products/seam/security http://jboss.com/products/seam/security-2.2.xsd
                 http://jboss.com/products/seam/transaction http://jboss.com/products/seam/transaction-2.2.xsd                 
                 http://jboss.com/products/seam/drools http://jboss.com/products/seam/drools-2.2.xsd
                 http://jboss.com/products/seam/mail http://jboss.com/products/seam/mail-2.2.xsd
                 http://jboss.com/products/seam/web http://jboss.com/products/seam/web-2.2.xsd
                 http://jboss.com/products/seam/components http://jboss.com/products/seam/components-2.2.xsd">

    <transaction:ejb-transaction />

    <core:init jndi-pattern="ejblocal:#{ejbName}" debug="true" ></core:init>

    <persistence:managed-persistence-context name="entityManager" auto-create="true" persistence-unit-jndi-name="@puJndiName@"/>   

    <core:manager concurrent-request-timeout="500"
                 conversation-timeout="120000"
                 conversation-id-parameter="cid"
                 parent-conversation-id-parameter="pid"/>

   <!-- Make sure this URL pattern is the same as that used by the Faces Servlet -->
   <web:hot-deploy-filter url-pattern="*.seam"/>


   <security:identity authenticate-method="#{authenticator.authenticate}" />

   <event type="org.jboss.seam.security.notLoggedIn">
      <action execute="#{redirect.captureCurrentView}"/>
   </event>
   <event type="org.jboss.seam.security.loginSuccessful">
      <action execute="#{redirect.returnToCapturedView}"/>
   </event>

   <mail:mail-session host="localhost" port="25"/>

</components>

3-web.xml

<?xml version="1.0" ?>

    <!-- websphere flavor -->

<web-app 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_2_5.xsd"
   version="2.5" metadata-complete="true">

   <!-- RichFaces -->

   <context-param>
      <param-name>org.richfaces.SKIN</param-name>
      <param-value>blueSky</param-value>
   </context-param>

   <!-- Suppress spurious stylesheets -->

   <context-param>
      <param-name>org.richfaces.CONTROL_SKINNING</param-name>
      <param-value>disable</param-value>
   </context-param>

   <context-param>
      <param-name>org.richfaces.CONTROL_SKINNING_CLASSES</param-name>
      <param-value>disable</param-value>
   </context-param>

   <!-- Change load strategy to DEFAULT to disable sending scripts/styles as packs -->

   <context-param>
      <param-name>org.richfaces.LoadStyleStrategy</param-name>
      <param-value>ALL</param-value>
   </context-param>

   <context-param>
      <param-name>org.richfaces.LoadScriptStrategy</param-name>
      <param-value>ALL</param-value>
   </context-param>

   <!-- Seam -->

   <listener>
      <listener-class>org.jboss.seam.servlet.SeamListener</listener-class>
   </listener>

   <filter>
      <filter-name>Seam Filter</filter-name>
      <filter-class>org.jboss.seam.servlet.SeamFilter</filter-class>
   </filter>

   <filter-mapping>
      <filter-name>Seam Filter</filter-name>
      <url-pattern>/*</url-pattern>
   </filter-mapping>

   <servlet>
      <servlet-name>Seam Resource Servlet</servlet-name>
      <servlet-class>org.jboss.seam.servlet.SeamResourceServlet</servlet-class>
   </servlet>

   <servlet-mapping>
      <servlet-name>Seam Resource Servlet</servlet-name>
      <url-pattern>/seam/resource/*</url-pattern>
   </servlet-mapping>

   <!-- Facelets development mode (disable in production) -->

   <context-param>
      <param-name>facelets.DEVELOPMENT</param-name>
      <param-value>@debug@</param-value>
   </context-param>

   <!-- JSF -->

   <context-param>
      <param-name>javax.faces.DEFAULT_SUFFIX</param-name>
      <param-value>.xhtml</param-value>
   </context-param>

   <servlet>
      <servlet-name>Faces Servlet</servlet-name>
      <servlet-class>javax.faces.webapp.FacesServlet</servlet-class>
      <load-on-startup>1</load-on-startup>
   </servlet>

   <servlet-mapping>
      <servlet-name>Faces Servlet</servlet-name>
      <url-pattern>*.seam</url-pattern>
   </servlet-mapping>

   <security-constraint>
      <display-name>Restrict raw XHTML Documents</display-name>
      <web-resource-collection>
         <web-resource-name>XHTML</web-resource-name>
         <url-pattern>*.xhtml</url-pattern>
      </web-resource-collection>
      <auth-constraint/>
   </security-constraint>

   <!-- Add entries for each EJB session bean which is also a Seam component (not required on JBoss AS) -->

   <persistence-unit-ref>
      <persistence-unit-ref-name>jdbc/shbCalcDS</persistence-unit-ref-name>
   </persistence-unit-ref>


 <ejb-local-ref>
    <!--  This matches the pattern set in components.xml -->
    <ejb-ref-name>ejblocal:EjbSynchronizations</ejb-ref-name>
    <ejb-ref-type>Session</ejb-ref-type>
    <local>org.jboss.seam.transaction.LocalEjbSynchronizations</local>
  </ejb-local-ref>   

</web-app>
4

1 に答える 1