我要做的下一步是使此设置与最新的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