2

私たちは大規模な Java EE プロジェクト/プログラムの真っ最中です。これまで、開発には Eclipse と Maven を使用してきました。私たちが対象としているアプリケーション サーバーは、WebLogic (最近は Oracle) です。
Oracle Business Rules (Oracle SOA Suite 11g の一部) の使用を開始することが決定されました。Soa Suite の開発は、JDeveloper に限定されています。SOAコンポジットを構築およびデプロイするための優れたantスクリプトがいくつかあります(これは、ルールがパッケージ化およびデプロイされる方法です)。
私は、これらの ant スクリプトを antrun を使用して maven から実行するように依頼されましたが、すべてではありませんが、ある程度は達成できました...
私の主な質問は、これを実行して成功した人はいますか? (誰かが試みたことがありますか..?本当にグーグルで何かを見つけることができません...)

以下は私のpomの関連部分です:

<plugin>
    <artifactId>maven-antrun-plugin</artifactId>
    <version>1.6</version>
    <executions>
      <execution>
        <phase>compile</phase>
        <configuration>
          <target>
            <property name="oracle.home" value="C:\Oracle\Middleware\jdeveloper"/>
            <property name="oracle.soa.mgmt.home" value="C:\Oracle\Middleware\jdeveloper"/>
            <property name="common.components.home" value="C:\Oracle\Middleware\oracle_common"/>
            <property name="env.JAVA_HOME" value="${java.home}"/>
            <property name="env.PWD" value="."/>
            <ant antfile="${oracle.home}\bin\ant-sca-compile.xml"/>
          </target>
        </configuration>
        <goals>
          <goal>run</goal>
        </goals>
      </execution>
    </executions>
  </plugin>
</plugins>

Maven は、Oracle/ミドルウェア ツリーの外部にあるプロジェクト ディレクトリから実行されます。これはほとんど機能します...
実際には、次の結果が得られます。

[INFO] Scanning for projects...
[INFO] ------------------------------------------------------------------------
[INFO] Building BilagorReglerSCA
[INFO]    task-segment: [compile]
[INFO] ------------------------------------------------------------------------
[INFO] [resources:resources]
[INFO] Using 'UTF-8' encoding to copy filtered resources.
[INFO] Copying 0 resource
[INFO] [compiler:compile]
[INFO] Nothing to compile - all classes are up to date
[INFO] [antrun:run {execution: default}]
[INFO] Executing tasks

main:

scac:
Validating composite "C:\JDeveloper\mywork\BilagorReglerSCA\BilagorRegler\composite.xml"
     [scac] oracle.fabric.common.wsdl.XSDException: Error loading schema from file:/C:/JDeveloper/mywork/BilagorReglerSCA/BilagorRegler/BilagorRegler_DecisionService.wsdl [Cause=Error in getting XML input stream: oramds:/soa/shared/rules/BpelProcess.xsd: oracle.mds.exception.MDSException: MDS-00054: Filen som ska laddas oramds:/soa/shared/rules/BpelProcess.xsd finns inte.]
     [scac]     at oracle.fabric.common.wsdl.SchemaBuilder.loadEmbeddedSchemas(SchemaBuilder.java:496)
     [scac]     at oracle.fabric.common.wsdl.SchemaBuilder.loadSchemasFromWSDL(SchemaBuilder.java:365)
...

「Filen som ska laddas oramds:/soa/shared/rules/BpelProcess.xsd finns inte.」というフレーズ。は、「読み込もうとしているファイルが存在しない」ことを意味します (クライアントが、国際版ではなく、スウェーデン語版の Windows をインストールすることを主張するのはなぜですか?)。
ant-sca-compile.xml には、次のような多数のインポート ステートメントが含まれています。

     <fileset dir="${common.components.home}/modules">
        ...
        <include name="oracle.mds_11.1.1/oramds.jar"/>

JDeveloperが生成するWSDS/XSD:sで使用されるoramds-URL:sを処理するには、oramds.jarが必要だと思います。

助けていただければ幸いです...

4

3 に答える 3

2

OK、それで私は最終的にエースのオラクルコンサルタントと一緒に座り、これを機能させる機会を得ました。

これが私たちが思いついたものです:

<properties>
    <oracle.fmw.soa.home>C:/Oracle/Middleware</oracle.fmw.soa.home>
    <!-- this is relative reference to JDK / Jrockit from ant-sca-compile|*.xml. For jdev it is ../../, for Soa Suite: TBD. -->
    <env.JAVA_HOME>../../jdk160_24</env.JAVA_HOME>
    <!-- For real server with Soa Suite installed use: Oracle_SOA1, for devenv use jdeveloper -->
    <oracle.fmw.productName>jdeveloper</oracle.fmw.productName>
    <antOutputDir>deploy</antOutputDir>
    <mvnOutputDir>target</mvnOutputDir>
</properties>
<build>
    <plugins>
        <plugin>
            <artifactId>maven-antrun-plugin</artifactId>
            <version>1.6</version>
            <executions>
                <execution>
                    <id>sca-compile</id>
                    <phase>compile</phase>
                    <goals>
                        <goal>run</goal>
                    </goals>
                    <configuration>
                        <target>
                            <property name="scac.input" value="${basedir}/composite.xml" />
                            <property name="scac.application.home" value="${basedir}/.." />
                            <property name="oracle.home" value="${oracle.fmw.soa.home}/${oracle.fmw.productName}" />
                            <ant
                                antfile="${oracle.fmw.soa.home}/${oracle.fmw.productName}/bin/ant-sca-compile.xml"
                                dir="${oracle.fmw.soa.home}/${oracle.fmw.productName}/bin/"
                                target="scac" />
                        </target>
                    </configuration>
                </execution>
                <execution>
                    <id>sca-package</id>
                    <phase>package</phase>
                    <goals>
                        <goal>run</goal>
                    </goals>
                    <configuration>
                        <target name="package">
                            <property name="build.compiler" value="extJavac" />
                            <property name="compositeName" value="${project.artifactId}" />
                            <property name="compositeDir" value="${basedir}" />
                            <property name="revision" value="${project.version}" />
                            <property name="scac.application.home" value="${basedir}/.." />
                            <property name="oracle.home" value="${oracle.fmw.soa.home}/${oracle.fmw.productName}" />
                            <property name="antOutputFile" value="sca_${project.artifactId}_rev${project.version}.jar" />
                            <property name="mvnOutputFile" value="${project.artifactId}-${project.version}.jar" />
                            <ant
                                antfile="${oracle.fmw.soa.home}/${oracle.fmw.productName}/bin/ant-sca-package.xml"
                                dir="${oracle.fmw.soa.home}/${oracle.fmw.productName}/bin"
                                target="package" />
                            <copy tofile="${mvnOutputDir}/${mvnOutputFile}" file="${antOutputDir}/${antOutputFile}" />
                        </target>
                    </configuration>
                </execution>
                <execution>
                    <id>sca-deploy</id>
                    <phase>deploy</phase>
                    <goals>
                        <goal>run</goal>
                    </goals>
                    <configuration>
                        <target name="deploy">
                            <property name="serverURL" value="${weblogic.serverURL}" />
                            <property name="user" value="${weblogic.user}" />
                            <property name="password" value="${weblogic.password}" />
                            <property name="sarLocation" value="${basedir}/deploy/sca_${project.artifactId}_rev${project.version}.jar" />
                            <property name="overwrite" value="true" />
                            <property name="forceDefault" value="true" />
                            <property name="partition" value="default" />
                            <property name="oracle.home" value="${oracle.fmw.soa.home}/${oracle.fmw.productName}" />
                            <ant
                                antfile="${oracle.fmw.soa.home}/${oracle.fmw.productName}/bin/ant-sca-deploy.xml"
                                dir="${oracle.fmw.soa.home}/${oracle.fmw.productName}/bin"
                                target="deploy" />
                        </target>
                    </configuration>
                </execution>
                <execution>
                    <id>sca-test</id>
                    <phase>deploy</phase>
                    <goals>
                        <goal>run</goal>
                    </goals>
                    <configuration>
                        <target>
                            <property name="jndi.properties.input" value="${basedir}/sca-test.jndi.properties" />
                            <property name="scatest.input" value="scatestinput" />
                            <property name="scatest.format" value="junit" />
                            <property name="scatest.result" value="reports" />
                            <property name="oracle.home" value="${oracle.fmw.soa.home}/${oracle.fmw.productName}" />
                            <ant
                                antfile="${oracle.fmw.soa.home}/${oracle.fmw.productName}/bin/ant-sca-test.xml"
                                dir="${oracle.fmw.soa.home}/${oracle.fmw.productName}/bin"
                                target="test" />
                        </target>
                    </configuration>
                </execution>
            </executions>
        </plugin>
    </plugins>
</build>

ant-tagのプロパティとパラメータの両方のセットが、私が最初に試していたものとは異なることに注意してください。

CIサーバーで実行するには、明らかにJDeveloperまたはSOASuiteのローカルインストールが必要です。weblogic.serverURL、対応する環境に設定する必要があります(local / dev / tst / etc ...のプロファイルを使用します)weblogic.userweblogic.password

それ以外は、チャームのように機能します...

于 2011-12-22T13:54:23.577 に答える
1

Maven + Oracle SOA ビルド スクリプトを使用したことはありませんが、通常、Oracle デプロイメント ツール (ADF、SOA など) を使用する場合は、Oracle SOA ホームまたは JDev ホーム (SCA 拡張機能付き) のいずれかが必要です。ビルドが実行されているのと同じマシン。oracle.home や common.components.home などの Ant 環境変数を正しく設定する必要があります。

于 2011-09-20T08:12:35.933 に答える
0

ant-sca-package.xmlを使用します( ant-sca-compile.xml ではありません):

<ant antfile="ant-sca-package.xml" dir="${env.BEA_HOME}/jdeveloper/bin">
  <property name="compositeDir" value="@{compositeDir}" />
  <property name="compositeName" value="@{compositeName}" />
  <property name="revision" value="${deploy.revision}" />
</ant>
于 2013-02-24T10:37:45.567 に答える