我正在使用WLST脚本在Weblogic 10.3.4中创建域。然后启动管理服务器并部署war文件。脚本中的所有内容。
在这个WLST中,我还更新了setDomainEnv.cmd文件,在类路径的开头添加了certian jar。当我们使用startWebLogic.cmd启动域时,将调用此setDomainEnv.cmd。
但是在脚本中,当我使用startServer命令启动服务器时,它不会调用startWebLogic.cmd,因此不会调用更新的setDomainEnv.cmd。 因此,虽然其他一切工作都很好(像域创建,战争部署)我的应用程序失败,因为没有加载必要的jar。 具体来说,我想在类路径中附加javax.el-api-2.2.4.jar和com.sun.el_2.2.0.v201105051105.jar。
有关如何从WLST调用startWebLogic.cmd的任何建议。 另外,如果我们可以从一个ant任务调用startWebLogic.cmd,或者Maven也会这样做。
修改
我的weblogic.xml如下所示
<container-descriptor>
<prefer-application-packages>
<package-name>javax.el.*</package-name>
<package-name>com.sun.el.*</package-name>
<package-name>javax.persistence.*</package-name>
<package-name>javax.persistence.criteria.*</package-name>
<package-name>javax.persistence.metamodel.*</package-name>
<package-name>javax.persistence.spi.*</package-name>
<package-name>org.eclipse.persistence.*</package-name>
<package-name>org.springframework.*</package-name>
</prefer-application-packages>
</container-descriptor>
答案 0 :(得分:2)
您可以选择以下方法之一
1 - 将所有jar放在%DOMAIN_HOME%/ lib文件夹中,它们将在服务器启动时添加到类路径中,这样您就不必修改setDomainEnv.cmd。这里的问题是,如果您在%DOMAIN_HOME%/ lib下读取readme.txt,您会看到这些jar在类路径的末尾添加,因此如果您希望所有这些jar都位于类路径的开头,那么这是不是一个好的解决方案。
2 - 启动通过startWebLogic.cmd的服务器的一种方法是使用nodemanager - 当然,对于这种方法,您需要配置nodemanger,在域中注册并在启动域之前启动 - 使用nmConnect并发出nmStart - 有关此
的详细信息,请参阅http://docs.oracle.com/cd/E24329_01/web.1211/e21050/starting_nodemgr.htm#NODEM209在将来:请注意,如果始终使用startWebLogic.cmd启动服务器,那么在setDomainEnv中设置类路径可能正常工作但是如果有任何用例也可以从AdminConsole启动服务器,那么你需要将类路径设置为:登录到AdminConsole-&gt;环境 - .Servers-&gt; YourManagedServer-&gt;配置(TAB) - &gt; ServerStart(SubTab) - &gt;类路径(文本区域)
答案 1 :(得分:0)
我不会质疑为什么需要部署这些jar,但在Weblogic中执行此操作的方法是将它们部署为共享库。您可以在脚本中使用WLST或Deployer执行此操作。修改cmd文件对我来说似乎是个黑客。