weblogic 之web服务器部署及相关问题整理

写一些不同领域的博文,希望我的博文或者经验对不同层次的你有所帮助!下面写一篇关于java web 应用服务器主题的博文!相信大家在刚接触java web 这个方向的时候,做的第一个关于java web的项目的时候使用的第一个web 应用服务器就是(汤姆猫)Tomcat,这个猫一直伴随着从事java web开发的你。相信对于它的配置我再熟悉不过了。那么大家是否已经对汤姆猫应用“疲倦”了呢???下面跟大家介绍一款商业版web 应用服务器【weblogic】,.也欢迎大家进入群【376447127】与我交流互联网技术。

关于weblogic的安装步骤我在这里就不过多废话了,直接进入正题:

安装weblogic11g r1完成之后,如下图:

weblogic 之web服务器部署及相关问题整理_第1张图片

安装目录说明(如图)(一些常配置目录简介):

weblogic 之web服务器部署及相关问题整理_第2张图片

下面我们开始走进weblogic,启用weblogic服务,和Tomcat类似,执行自己的启用脚本!这些脚本设置web服务器的一些启用参数以及需要的环境变量参数,这些启动脚本的配置对后期问题处理也至关重要。

下面介绍weblogic的几种常见的部署项目的方式:

方式一:自动部署(看weblogic的目录结构的英文意思就可大致明白每个目录下文件的的作用)

在weblogic的每个域中,即weblogic主目录\Middleware\user_projects\domains\xx域\autodeploy\ 路径下的autodeploy目录其实就相当于Tomcat的的webapps目录,只要我们把自己做好的项目放在该目录即可。这样就可以将我们的 项目自动部署到weblogic中了,不需要到weblogic console中进行手动配置。和Tomcat的webapps类似。

注意事项
1)自动部署适合开发阶段使用,不建议在生产环境中应用
2)将应用copy到autodeploy中,在weblogic的domain的控制台中,进入“域结构”->“部署”,如果未发现自动部署记录,此时,你可以查看weblogic的logs文件夹下面的日志(一般情况下可能是应用问题导致部署失败)

weblogic 之web服务器部署及相关问题整理_第3张图片

方式二:域控制台部署(weblogic提供图形界面的部署方式,在控制台同时可以进行一些复杂服务器配置型,当然我们猫也有这样图形界面部署,但相对简单)

这个方式部署就跟安装软件一样,傻瓜式的下一步就行。根据自己需要选择配置选项即可!

方式三:命令部署(该种配置方式的具体配置可参见weblogic提供帮助文档来进行或者官网)在这里就不详细说了!

值得注意的是我们做的项目如果要想成功部署到weblogic上,我们还需要给我们项目添加weblogic约定的部署描述符weblogic.xml文件,和我们web.xml类似。这些部署描述符告诉我们web服务器在启动时的一些行为约定。下面weblogic.xml的常见配置:(如下图)

<?xml version="1.0" encoding="UTF-8" ?>
<weblogic-web-app
	xmlns="http://www.bea.com/ns/weblogic/weblogic-web-app"
	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
	xsi:schemaLocation="http://www.bea.com/ns/weblogic/weblogic-web-app http://www.bea.com/ns/weblogic/weblogic-web-app/1.0/weblogic-web-app.xsd">
	<jsp-descriptor>
		<!-- 
			在JSP 编译过程中保存作为中间步骤生成的 Java 
			文件。除非此参数设置为 true,否则编译完成后
			将删除所有中间 Java 文件是否让编译jsp文件产
			生的.java文件持续存在,如果设置为true,就可
			以在部署的环境查看jsp产生的.java文件,方便调
			试错误。
		-->
		<keepgenerated>true</keepgenerated>
		<!-- -1表示永不检查页面,该值为生产环境中的默认值,0表示总是检查页面,1表示每秒检查一次页面,该值为开发环境中的默认值。 -->
		<page-check-seconds>60</page-check-seconds>
		<!-- 如果设置为 true,当部署或重新部署 Web应用程序时,或启动 WebLogic时,WebLogic Server会自动预编译所有已修改的JSP。 -->
		<precompile>true</precompile>
		<precompile-continue>true</precompile-continue>
	</jsp-descriptor>

	<container-descriptor>
		<!-- 
			该参数的默认值也是1,每隔1秒检查servlet是否被修改并需要重新编译。
			这里建议修改为-1,表示永不检查,具体设置如下:
		-->
		<servlet-reload-check-secs>1</servlet-reload-check-secs>
		<!-- 
			该参数针对 Web应用程序范围内资源路径中发现的缓存资源执行元数据缓存。
			该参数标识 WebLogic Server检查资源是否发生修改的频率,如果已修改,则重新加载。
			值 -1 表示元数据进行缓存,但从不对磁盘进行检查以便找出所做的更改。建议在生产环境中使用该值,以提升性能。
			值 0 表示不执行元数据缓存。持续更改文件的客户必须将该参数设置为大于或等于 0的一个值。
			值 1 表示每秒重新加载一次。该值为开发环境中的默认值。
		-->
		<resource-reload-check-secs>1</resource-reload-check-secs>
		<!-- 
			公司的项目还遇到这样一个问题,Tomcat下用的好好的,
			但是放到weblogic下就出了问题,最可能造成这样的原因
			是应用程序的jar包和weblogic下的jar包冲突。
			
			说明:此种方法理论上可以解决问题,但其改变了weblogic默认的加载jar的顺序。
			大部分时候可能带来更多的版本不兼容问题。所以如果此方法中看不中用的话再用下面的方法解决。
		-->
		<prefer-web-inf-classes>true</prefer-web-inf-classes>
		<optimistic-serialization>true</optimistic-serialization>
		<show-archived-real-path-enabled>
			true
		</show-archived-real-path-enabled>
	</container-descriptor>
	<!-- 指定应用上下文,设置在根路径即可访问该服务 如:http://localhost:7001/jplogic-->
	<context-root>/jplogic</context-root>
	<!--
	说明: 
    1)你c盘上面的路径结构应该为 c:\jplogic\jplogic [将需要的资源放入jplogic下面] 
    2)资源访问路径为 http://localhost:7001/jplogic/..相当于 c:\jplogic\jplogic\... 
    3)这样配置虚拟目录的方式可以将一些图片、视屏、文件等资源存放在这些目录下,这样在门户网站上就可以访问这些资源
	
		<virtual-directory-mapping>
			<local-path>c:/jplogic</local-path>
			<url-pattern>/jplogic/*</url-pattern>
		</virtual-directory-mapping>
	-->
</weblogic-web-app>

下面详细说一下<prefer-web-inf-classes>true</prefer-web-inf-classes>参数,理论上我们将该参数设置为true之后,welogic加载jar的顺序先加载项目本身的jar,但同时也可以出现其他兼容性问题!这是很多人在将项目部署到Tomcat上是可以正常运行,一旦部署到weblogic的时候就会出现诸多问题。有可能会与weblogic本身自带的jar冲突。

如果遇到类似的问题可从几个方面解决这些问题使用参数<prefer-web-inf-classes>true</prefer-web-inf-classes>配置,如果问题还存在可在weblogic目录中找出冲突jar,然后在weblogic的启动脚本文件中设定jar的加载路径,也就是classpath环境变量!

说了这么多以上三中部署方式仅供大家参考,其实就是配置weblogic的核心配置文件config.xml(启动weblogic之后会根据用户的配置行为以及autodepoy目录是否存在项目来自动检测更新配置文件config.xml)如下所示:

  <app-deployment>
    <name>WebRoot</name>
    <target>AdminServer</target>
    <module-type>war</module-type>
    <source-path>D:\DeveloperTool\javaProjects\workspace\jplogicPlatform\WebRoot</source-path>
    <security-dd-model>DDOnly</security-dd-model>
  </app-deployment>
  <app-deployment>
    <name>_appsdir_webofficeDemo_dir</name>
    <target>AdminServer</target>
    <module-type>war</module-type>
    <source-path>autodeploy\webofficeDemo</source-path>
    <security-dd-model>DDOnly</security-dd-model>
    <staging-mode>nostage</staging-mode>
  </app-deployment>
  <app-deployment>
    <name>_appsdir_textflow_dir</name>
    <target>AdminServer</target>
    <module-type>war</module-type>
    <source-path>autodeploy\textflow</source-path>
    <security-dd-model>DDOnly</security-dd-model>
    <staging-mode>nostage</staging-mode>
  </app-deployment>
  <app-deployment>
    <name>_appsdir_suggest_dir</name>
    <target>AdminServer</target>
    <module-type>war</module-type>
    <source-path>autodeploy\suggest</source-path>
    <security-dd-model>DDOnly</security-dd-model>
    <staging-mode>nostage</staging-mode>
  </app-deployment>
  <admin-server-name>AdminServer</admin-server-nam<strong>e></strong>

下面jplogic部署到weblogic的效果图:

weblogic 之web服务器部署及相关问题整理_第4张图片

服务器监控视图:

weblogic 之web服务器部署及相关问题整理_第5张图片

你可能感兴趣的:(weblogic)