0

我正在使用 WLST 脚本在 Weblogic 10.3.4 中创建域。然后启动管理服务器并部署一个war文件。全部在脚本中。

在此 WLST 中,我还将更新 setDomainEnv.cmd 文件以在类路径的开头添加某些 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> 
4

2 回答 2

2

您可以选择以下方法之一

1 - 将所有 jars 放在 %DOMAIN_HOME%/lib 文件夹中,它们将在服务器启动期间添加到类路径中,这样您就不必修改 setDomainEnv.cmd。这里的问题是,如果您阅读 %DOMAIN_HOME%/lib 下的 readme.txt,您会看到这些 jars 添加在类路径的末尾,因此如果您希望所有这些 jars 都位于类路径的开头,那么这是不是一个好的解决方案。

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 启动的任何用例,那么您需要设置类路径at : 登录到 AdminConsole–>Environments—.Servers—>YourManagedServer—>Configuration (TAB)—>ServerStart (SubTab) -> Classpath (text area)

于 2012-09-13T07:46:53.150 回答
0

I wont question why you need these jars deployed, but the way to do this in Weblogic is to deploy them as a Shared Library. You can probably do this with WLST or the Deployer in a script. Modifying the cmd files seems like a hack to me.

于 2012-09-12T03:15:29.877 回答