2010-11-12 5 views
2

Мы находимся в середине большого проекта/программы Java EE. До этого момента мы использовали Eclipse и Maven для нашей разработки. Называемым сервером приложений является WebLogic (Oracle, в наши дни).
Было решено, что мы начнем использовать Oracle Business Rules (часть Oracle SOA Suite 11g). Разработка Soa Suite ограничена JDeveloper. В нем есть несколько хороших скриптов для создания и развертывания SOA Composites (как правило, пакеты упакованы и развернуты).
Мне было поручено запустить эти скрипты муравьев из maven с помощью antrun, и я получил некоторые пути, но не все ...
Мой главный вопрос: кто-нибудь преуспел в этом? (? Кто-нибудь еще пытался .. Не могу найти что-нибудь погуглить ...)Ant, Maven и Jdeveloper SOA Extension

Ниже соответствующая часть моего ПОМ:

<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 сома ска laddas oramds: /soa/shared/rules/BpelProcess.xsd Финны инте." означает, что «файл, который вы пытаетесь загрузить, не существует» (почему мой клиент настаивает на установке шведской языковой версии Windows, а не на международном?).
муравей-SCA-compile.xml содержит многочисленные операторы импорта, подобные этим:

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

Я предполагаю, что oramds.jar необходимо обработать oramds-URL: S, которые используются в WSDS/XSD: s JDeveloper генерирует.

Любая помощь приветствуется ...

+0

опечатка - crowne

+0

Также менее вредоносная и более юмористическая фрейдистская опечатка - на самом деле она дает следующий результ: ... На самом деле это дает следующий результат: – crowne

+0

Интересно, JDeveloper передает его как правильный pom.xml, выделяя и все - didn Решить проблему, хотя, по-прежнему получить вторую ошибку сборки ... – Larsing

ответ

1

Я не использовал Maven + Oracle SOA создавать сценарии, но как правило, при использовании любого из средств развертывания Oracle (ADF, SOA, и т.д.) вам нужно будет либо иметь Oracle SOA Home или JDev home (с расширением SCA) на том же компьютере, на котором работает сборка. Вам необходимо правильно установить параметры среды Ant. oracle.home и common.components.home и т. д.

2

ОК, так что в итоге у меня появился шанс сесть за консультанта по Oracle Ace и заставить его работать.

Это то, что мы придумали:

<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> 

Примечание, как различные наборы свойств и параметров для муравьев-тега, чем то, что я изначально пытается с.

Для запуска на CI-сервере вам, очевидно, потребуется локальная установка JDeveloper или SOA Suite. weblogic.serverURL, weblogic.user и weblogic.password необходимо установить в соответствующую среду (я использую профили для локального/dev/tst/etc ...).

Кроме того, он работает как шарм ...

0

Используйте муравей-SCA-package.xml (не муравей-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> 
Смежные вопросы