使用startWebLogic.cmd启动weblogic

使用startWebLogic.cmd启动weblogic,weblogic,wlst,Weblogic,Wlst,我正在使用WLST脚本在Weblogic 10.3.4中创建一个域。然后启动管理服务器并部署war文件。所有这些都在脚本中 在这个WLST中,我还更新了setDomainEnv.cmd文件,以便在类路径的开头添加certian JAR。当我们使用startweblog.cmd启动域时,将调用此setDomainEnv.cmd 但是在使用startServer命令启动服务器的脚本中,它不会调用startWebLogic.cmd,因此不会调用我更新的setDomainEnv.cmd。 因此,尽管其他

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

在这个WLST中,我还更新了setDomainEnv.cmd文件,以便在类路径的开头添加certian JAR。当我们使用startweblog.cmd启动域时,将调用此setDomainEnv.cmd

但是在使用startServer命令启动服务器的脚本中,它不会调用startWebLogic.cmd,因此不会调用我更新的setDomainEnv.cmd。 因此,尽管其他一切都正常工作(如域创建、war部署),但由于未加载必要的JAR,我的应用程序失败。 具体来说,我想在类路径中附加javax.el-api-2.2.4.jar和com.sun.el_2.2.0.v2011051105.jar

关于如何从WLST调用startweblog.cmd的任何建议。 如果我们可以从ant任务调用startweblog.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> 

javax.el*
com.sun.el*
javax.persistence*
javax.persistence.criteria*
javax.persistence.metamodel*
javax.persistence.spi.*
org.eclipse.persistence.*
org.springframework.*

我不会质疑为什么需要部署这些JAR,但在Weblogic中实现这一点的方法是将它们部署为共享库。您可能可以使用WLST或脚本中的部署器来实现这一点。修改cmd文件对我来说似乎是一种黑客行为。

您可以选择以下方法之一

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

2-启动通过startweblog.cmd的服务器的一种方法是使用nodemanager -当然,对于这种方法,您需要在启动域之前配置NodeManager、向域注册并启动它 -使用nmConnect并发出nmStart -请参阅以了解有关此的更多详细信息


将来:请注意,如果服务器总是使用startwebogic.cmd启动,则在setDomainEnv中设置类路径可能会很好,但如果有任何用例可以从AdminConsole启动服务器,然后需要将类路径设置为:登录到AdminConsole->Environments->Servers->YourManagedServer->Configuration(选项卡)->ServerStart(子选项卡)->类路径(文本区域)

我这样做的原因是Weblogic有自己的EL jars版本,它与我需要的版本不同。当我们启动weblogic时,它将加载自己版本的EL-jars。我也尝试将这些jars放在域的lib文件夹中,但这也不起作用。您认为使用共享库,我将能够覆盖weblogic已经加载的内容。我可以试一试,也许另一种方法是将jar放在WEB-INF/lib中,使用preferredWebINFclasses元素。偏好web inf类示例我已经尝试过偏好web inf类,但它有一个不同的问题。我的应用程序需要JPA2.0,默认情况下,weblogic 10.3.4加载JPA1.0。如果我使用首选web inf类,weblogic会加载JPA1.0,这会产生一个问题。相反,我使用的是加载JPA2.0包。但遗憾的是,EL jarsI已经尝试了第1点,并且正如您所提到的,它在类路径的末尾添加了条目,因此它不符合我的目的。关于Nodemanager,我尝试过设置它,但遇到了一些问题。将它放在那里。也许我会再次尝试。我可以再问一个问题吗。我确信我的应用程序将是域中唯一运行的应用程序。因此,我可以在管理服务器中部署它,而不是创建托管服务器吗?通常在生产环境中,不建议在AdminServer上部署应用程序,因为它应该仅用于管理目的,但weblogic不强制执行此操作,因此我想您可以在AdminServer上部署应用程序。规则。serverstart:我认为采用nodemanager方法更好。您能告诉我在配置NM时遇到了什么问题吗?我在NodeManager中添加了一个单独的问题。请看一看