0

Ant スクリプトを使用して war ファイルをデプロイするために、mobileFirst CLI を使用しています。mfp-cli Web サーバー ディレクトリと derby データベースのパスを指定します。

以下は私のコードです:

       <target name="database">
   <configuredatabase kind="Worklight">
    <derby database="WRKLGHT" datadir="${path-to-mfpcli}/derby/TestProj"/>
   </configuredatabase>
  <configuredatabase kind="WorklightReports">
  <derby database="WLREPORT" datadir="${path-to-mfpcli}/derby/TestProj"/>
   </configuredatabase>
   </target>

  <target name="install">
   <configureapplicationserver id="TestProj" environmentId="TestProj">
  <project warfile="${path-to-project}/TestProj.war" libraryfile="${path-to-worklight-jee}/worklight-jee-library-7.0.0.jar"/>

  <!-- Here you can define values which override the 
       default values of Worklight configuration properties -->
  <property name="serverSessionTimeout" value="10"/>    

  <applicationserver>

    <websphereapplicationserver installdir="${websphere-server-installed-directory}/wlp" profile="Liberty" user="admin" password="admin">
      <server name="worklight"/>
    </websphereapplicationserver>
  </applicationserver>
  <database kind="Worklight">
    <derby database="WRKLGHT" datadir="${path-to-mfpcli}/derby/TestProj"/>
  </database>
  <database kind="WorklightReports">
    <derby database="WLREPORT" datadir="${path-to-mfpcli}/derby/TestProj"/>
  </database>
</configureapplicationserver>

server.xml は次のように更新されています。

 <server description="worklight">

 <featureManager>
    <feature>servlet-3.0</feature>
    <feature>jndi-1.0</feature>
    <feature>jdbc-4.0</feature>
    <feature>localConnector-1.0</feature>
    <feature>restConnector-1.0</feature>
    <feature>jsp-2.2</feature>
    <feature>appSecurity-1.0</feature>
    <feature>ssl-1.0</feature>
 </featureManager>
 <webContainer invokeFlushAfterService="false" deferServletLoad="false"/>
<webContainer com.ibm.ws.webcontainer.suppressLoggingServiceRuntimeExcep="true" invokeFlushAfterService="false" deferServletLoad="false"/>
<webContainer deferServletLoad="false" invokeFlushAfterService="false"/>

<!-- non standard ports were used to avoid future collision with other WebSphere products. -->
<httpEndpoint id="defaultHttpEndpoint"
              host="*"
              httpPort="10080"
              httpsPort="10443" >
    <tcpOptions soReuseAddr="true"/>
</httpEndpoint>
<logging consoleLogLevel="AUDIT" copySystemStreams="false"/>
<applicationMonitor updateTrigger="mbean"/>
<executor name="LargeThreadPool" id="default" coreThreads="200" maxThreads="400" keepAlive="60s" stealPolicy="STRICT" rejectedWorkPolicy="CALLER_RUNS"/>
<administrator-role>
   <user>admin</user>
</administrator-role>
<keyStore id="defaultKeyStore" password="worklight"/>
<jndiEntry jndiName="ibm.worklight.admin.jmx.host" value="localhost"/>
<jndiEntry jndiName="ibm.worklight.admin.jmx.port" value="10443"/>
<jndiEntry jndiName="ibm.worklight.topology.platform" value="Liberty"/>
<jndiEntry jndiName="ibm.worklight.topology.clustermode" value="Standalone"/>
<application context-root="analytics-service" id="analytics-service" location="analytics-service.war" name="AnalyticsServices" type="war">
    <application-bnd>
        <security-role name="worklightadmin">
            <user name="admin"/>
        </security-role>
            <security-role name="worklightdeployer">
            <user name="deployer"/>
        </security-role>
            <security-role name="worklightmonitor">
            <user name="monitor"/>
        </security-role>
            <security-role name="worklightoperator">
            <user name="operator"/>
        </security-role>
    </application-bnd>
</application>
<application context-root="analytics" id="analytics" location="analytics.war" name="Analytics" type="war">
    <application-bnd>
        <security-role name="worklightadmin">
            <user name="admin"/>
        </security-role>
            <security-role name="worklightdeployer">
            <user name="deployer"/>
        </security-role>
            <security-role name="worklightmonitor">
            <user name="monitor"/>
        </security-role>
            <security-role name="worklightoperator">
            <user name="operator"/>
        </security-role>
    </application-bnd>
</application>
<!-- Begin of configuration added by IBM Worklight <configureApplicationServer> ant task for context root '/worklight'. -->

<!-- Declare the IBM Worklight project runtime application. -->
<application id="worklight" name="worklight" location="TestProj.war" type="war">
    <classloader delegation="parentLast">
        <privateLibrary id="worklightlib_worklight">
            <fileset dir="${shared.resource.dir}/worklight/lib" includes="worklight-jee-library-7.0.0.jar"/>
            <fileset dir="${wlp.install.dir}/lib" includes="com.ibm.ws.crypto.passwordutil_1.0.1.jar"/>
        </privateLibrary>
    </classloader>
</application>

<!-- Declare the JNDI properties for the IBM Worklight project runtime. -->
<jndiEntry jndiName="worklight/publicWorkLightProtocol" value='"http"'/>
<jndiEntry jndiName="worklight/publicWorkLightPort" value='"10080"'/>
<jndiEntry jndiName="worklight/ibm.worklight.admin.environmentid" value='"TestProj"'/>
<jndiEntry jndiName="worklight/serverSessionTimeout" value='"10"'/>


<!-- Declare the jar file for Derby with the "embedded" deployment option. -->
<library id="worklight/DerbyLib">
    <fileset dir="${shared.resource.dir}/worklight/derby" includes="derby.jar"/>
</library>

<!-- Declare the IBM Worklight Server database. -->
<dataSource jndiName="worklight/jdbc/WorklightDS" transactional="false">
    <jdbcDriver libraryRef="worklight/DerbyLib"/>
    <properties.derby.embedded databaseName="${path-to-mfpcli}/TestProj/WRKLGHT" user='"WORKLIGHT"'/>
</dataSource>

<!-- Declare the IBM Worklight Server reports database. -->
<dataSource jndiName="worklight/jdbc/WorklightReportsDS" transactional="false">
    <jdbcDriver libraryRef="worklight/DerbyLib"/>
    <properties.derby.embedded databaseName="${path-to-mfpcli}/TestProj/WLREPORT" user='"WORKLIGHT"'/>
</dataSource>

<!-- End of configuration added by IBM Worklight <configureApplicationServer> ant task for context root '/worklight'. -->

しかし、ここで server.xml の TestProj.war コードの ID と名前は「worklight」です。デフォルト値としてどのようになったかがわかりません。サーバーの実行中にランタイム環境が worklight として表示されます。MBean が見つからないというエラーがスローされるため、アプリをデプロイできません。

4

1 に答える 1

0

<configureapplicationserver id="TestProj" environmentId="TestProj">

身分証明書は必要ありません。この属性は、WAS フル プロファイルでデプロイする場合にのみ使用されます (WAS で作成されたオブジェクトにサフィックスを追加し、セル内で複数のデプロイメントを許可するため)。

おそらく、environmentId は必要ありません。これは、MFP admin の複数のインスタンスを同じアプリケーション サーバーに展開する場合に使用されます。追加する場合、管理者が同じものを持っている必要があります。そうしないと、MBean が見つからないというエラーが発生します。

contextRoot を変更するには、属性 contextroot を使用します

  <configureapplicationserver contextRoot="/TestProj">

参考として、 https://www-01.ibm.com/support/knowledgecenter/SSHS8R_7.0.0/com.ibm.worklight.reference.doc/devref/r_ant_tasks_configure_appserver_reference.htmlを参照してください。

于 2015-07-15T16:28:59.917 に答える