我要做的下一步是使此設置與最新的WebLogic 12c一起使用。
入門

按照我的前兩個帖子的入門部分中的步驟進行操作。 要使此工作正常,您只需更改幾件事。 顯然,您需要一個WebLogic 12c。 從OTN下載頁面復制副本。 閱讀并接受許可,然后下載適用于您操作系統的ZIP安裝程序或完整安裝程序。 Arun Gupta有一篇不錯的文章,介紹如何開始使用ZIP安裝程序 。 這基本上是關于下載,提取,配置和創建您的域。 假設您有一個domain1。 確保將mysql-connector-java-5.1.6-bin.jar復制到domain1 / lib并通過domain1根目錄中的startWebLogic.cmd / .sh啟動服務器。 接下來,您需要配置適當的連接池。 您也可以使用一些WLST魔術或新的WebLogic Maven插件來執行此操作,但是我認為您是通過管理控制臺來執行此操作的。 轉到“域>服務>數據源”,并使用jndi名稱“ jdbc / auditlog”創建一個MySQL數據源AuditLog。 執行測試時,請確保服務器正在運行!
修改sampleweb項目
現在打開sampleweb項目的pom.xml并刪除glassfish-embedded-all所有依賴項以及arquillian-glassfish-embedded-3.1和javaee-api。 現在添加wls-remote-12.1容器和jboss-javaee-6.0依賴項:
<dependency><groupId>org.jboss.arquillian.container</groupId><artifactId>arquillian-wls-remote-12.1</artifactId><version>1.0.0.Alpha2</version><scope>test</scope></dependency><dependency><groupId>org.jboss.spec</groupId><artifactId>jboss-javaee-6.0</artifactId><version>1.0.0.Final</version><type>pom</type><scope>provided</scope></dependency>
現在打開arquillian.xml描述符并更改容器設置以使用wls容器:
lt;container qualifier="wls" default="true"><configuration><property name="adminUrl">t3://localhost:7001</property><property name="adminUserName">weblogic1</property><property name="adminPassword">weblogic1</property><property name="target">AdminServer</property><property name="wlsHome">X:\path\to\wlserver\</property></configuration>
確保使用正確的目標服務器并指向正確的wlsHome。 右鍵單擊NetBeans中的AuditRepositoryServiceTest,然后運行“測試文件”。 您將看到遠程容器正在做一些工作:
22.01.2012 22:40:34 org.jboss.arquillian.container.wls.WebLogicDeployerClient部署
信息:啟動weblogic.Deployer部署測試工件。
22.01.2012 22:40:46 org.jboss.arquillian.container.wls.WebLogicDeployerClient forkWebLogicDeployer 信息:weblogic.Deployer似乎已成功終止。 22.01.2012 22:40:53 org.jboss.arquillian.container.wls.WebLogicDeployerClient取消部署 信息:啟動weblogic.Deployer取消部署測試工件。 22.01.2012 22:41:00 org.jboss.arquillian.container.wls.WebLogicDeployerClient forkWebLogicDeployer 信息:weblogic.Deployer似乎已成功終止。
而且測試呈綠色! 如果查看域日志,可以看到test.war模塊已成功部署和取消部署。
言論與思想
看一下WebLogic 12c(特別是新的maven插件)所具有的功能,這一切似乎都是手工制作的。 在基于Maven的項目中,WebLogic開發人員在此之前會做什么? 他將把weblogic.jar推送到本地存儲庫中并使用它,而不是使用任何jboss-javaee-6.0或javaee-api依賴項。 如果使用Arquillian wls容器嘗試此操作,您將開始看到一些奇怪的異常,如下所示:
加載類:javax.transaction.SystemException
線程“ main”中的異常java.lang.ClassFormatError:缺少代碼
類文件中不是本機或抽象的方法中的屬性 javax / transaction / SystemException
這基本上是因為只有wlfullclient.jar包含了通過JMX進行遠程管理所需的所有類。 神奇的weblogic.jar的清單中確實有一些其他的類路徑條目,如果將其放在本地m2存儲庫中則無法解析。 因此,您只剩下兩個選擇。 使用wlfullclient.jar( 請參閱如何在docs中構建它 )進行測試,并使用weblogic.jar進行開發,或者使用jboss-javaee-6.0依賴項進行開發和測試(提供了作用域)。 兩者都是有效的替代方法。 如您所見, Arquillian文檔中仍未記錄WebLogic容器。 您可以在github上的wls-container項目中找到更詳細的文檔。
下載simpleweb-wls.zip項目作為參考,以幫助您入門。
感謝Vineet和Aslak的幫助!
參考: Arquillian與NetBeans,WebLogic 12c,JPA和來自我們JCG合作伙伴 Markus Eisele 的MySQL數據源在Java的企業軟件開發博客上。
翻譯自: https://www.javacodegeeks.com/2012/01/arquillian-with-netbeans-weblogic-12c.html