针对客户端传来的一个URL( 协议 :// 域名 : 端口号 / 上下文路径 / 资源 ),JBoss Web服务器如何确定调用哪个应用程序?

1、server.xml配置连接器:协议、端口号

配置文件:

\server\production\deploy\jbossweb.sar\server.xml

\server\production\deployers\jbossweb.deployer\server.xml

JBoss支持Http、Https协议;还支持AJP协议,允许本地Web服务器在二进制格式中发送请求,速度较快。

所以在server.xml中可以定义HTTP连接器、HTTPS连接器、AJP连接器:

<Server>
   <Service name="jboss.web">
      <!-- A HTTP/1.1 Connector on port 8080 -->
<!--redirectPort=443, 即转交给第三个Connector(https)处理-->
<!--注意,需要同时在web.xml中配置transport-guarantee才可对指定URL生效-->
<Connector protocol="HTTP/1.1" port="80" address="${jboss.bind.address}" 
           connectionTimeout="20000" redirectPort="443" URIEncoding="UTF-8" 
           compression="on" compressableMimeType="text/html,text/xml,text/css,text/javascript, 
             application/x-javascript,application/javascript,application/json"/>
<Connector protocol="HTTP/1.1" port="8080" address="${jboss.bind.address}" 
           connectionTimeout="20000" redirectPort="443" URIEncoding="UTF-8" 
           compression="on" compressableMimeType="text/html,text/xml,text/css,text/javascript, 
             application/x-javascript,application/javascript,application/json"/>
<!--port=443-->
<Connector protocol="HTTP/1.1" SSLEnabled="true" port="443" address="${jboss.bind.address}" 
           scheme="https" secure="true" clientAuth="false" keystoreFile="${javax.net.ssl.keyStore}" 
           truststoreFile="${javax.net.ssl.trustStore}" keystorePass="${javax.net.ssl.keyStorePassword}" 
           truststorePass="${javax.net.ssl.trustStorePassword}" sslProtocol="TLS" URIEncoding="UTF-8" 
           compression="on" compressableMimeType="text/html,text/xml,text/css,text/javascript, 
             application/x-javascript,application/javascript,application/json"/>
<Connector protocol="HTTP/1.1" SSLEnabled="true" port="8443" address="${jboss.bind.address}" 
           scheme="https" secure="true" clientAuth="false" keystoreFile="${javax.net.ssl.keyStore}" 
           truststoreFile="${javax.net.ssl.trustStore}" keystorePass="${javax.net.ssl.keyStorePassword}" 
           truststorePass="${javax.net.ssl.trustStorePassword}" sslProtocol="TLS" URIEncoding="UTF-8" 
           compression="on" compressableMimeType="text/html,text/xml,text/css,text/javascript, 
             application/x-javascript,application/javascript,application/json"/>
      <!-- Add this option to the connector to avoid problems with 
          .NET clients that don't implement HTTP/1.1 correctly 
         restrictedUserAgents="^.*MS Web Services Client Protocol 1.1.4322.*$"
      <!-- A AJP 1.3 Connector on port 8009 -->
      <Connector protocol="AJP/1.3" port="8009" address="${jboss.bind.address}" redirectPort="8443"/>
<Engine name="jboss.web" defaultHost="localhost">
         <!-- The JAAS based authentication and authorization realm implementation
         that is compatible with the jboss 3.2.x realm implementation.
         - certificatePrincipal : the class name of the
         org.jboss.security.auth.certs.CertificatePrincipal impl
         used for mapping X509[] cert chains to a Princpal.
         - allRolesMode : how to handle an auth-constraint with a role-name=*,
         one of strict, authOnly, strictAuthOnly
           + strict = Use the strict servlet spec interpretation which requires
           that the user have one of the web-app/security-role/role-name
           + authOnly = Allow any authenticated user
           + strictAuthOnly = Allow any authenticated user only if there are no
           web-app/security-roles
         <Realm className="org.jboss.web.tomcat.security.JBossWebRealm" certificatePrincipal="org.jboss.security.auth.certs.SubjectDNMapping" allRolesMode="authOnly"/>
         <Host name="localhost">
             <Valve className="org.jboss.web.rewrite.RewriteValve"/>             
             <Valve className="org.jboss.web.tomcat.service.sso.ClusteredSingleSignOn" requireReauthentication="true"/>                
         </Host>
      </Engine>
	<listener>
		<listener-class>com.alpha.webstart.WebstartContextListener</listener-class>
	</listener>
        <servlet>
		<servlet-name>JnlpDownloadServlet</servlet-name>
		<servlet-class>jnlp.sample.servlet.JnlpDownloadServlet</servlet-class>
	</servlet>
	<servlet>
		<servlet-name>CertificateServlet</servlet-name>
		<servlet-class>com.alpha.webstart.CertificateServlet</servlet-class>
	</servlet>
        <servlet-mapping>
		<servlet-name>JnlpDownloadServlet</servlet-name>
		<url-pattern>*.jar</url-pattern>
	</servlet-mapping>
	<servlet-mapping>
		<servlet-name>JnlpDownloadServlet</servlet-name>
		<url-pattern>*.jnlp</url-pattern>
	</servlet-mapping>
	<servlet-mapping>
		<servlet-name>CertificateServlet</servlet-name>
		<url-pattern>/certificate</url-pattern>
	</servlet-mapping>
        <filter>
		<filter-name>CompressingFilter</filter-name>
		<filter-class>com.planetj.servlet.filter.compression.CompressingFilter</filter-class>
	</filter>
	<filter-mapping>
		<filter-name>CompressingFilter</filter-name>
		<url-pattern>*.jnlp</url-pattern>
	</filter-mapping>
</web-app>

1、配置虚拟主机

所谓虚拟主机,是分割Web容器以向某些域 提供指定应用程序的机制。

同一个Web服务器可以拥有不同的域,每个域中包含不同的应用程序;即将不同的应用程序绑定到不同的虚拟主机上,如图:

步骤一,server.xml在连接器上启用虚拟主机

配置文件:

\server\production\deploy\jbossweb.sar\server.xml

\server\production\deployers\jbossweb.deployer\server.xml

将连接器的useIPVHosts特性设为true

步骤二,server.xml定义虚拟主机

配置文件:

\server\production\deploy\jbossweb.sar\server.xml

\server\production\deployers\jbossweb.deployer\server.xml

<Connector protocol="AJP/1.3" port="8009" address="${jboss.bind.address}" redirectPort="8443"/>
<Engine name="jboss.web" defaultHost="localhost">
     <Host name="localhost" autoDeploy="false" deployOnStartup="false" deployXML="false">
         <!--阀门、拦截器;当请求每次进入服务器时执行特定操作,例如记录客户端IP、查询是否在黑名单中-->
         <Valve className="org.jboss.web.tomcat.service.sso.ClusteredSingleSignOn" requireReauthentication="true"/>
     </Host>
     <Host ...>

默认情况下,Host.name=localhost,表示虚拟主机能够处理进入服务器的每一个请求。

步骤三,jboss-web.xml将应用程序绑定到虚拟主机中

配置文件:

WEB-INF\jboss-web.xml

<jboss-web>
    <virtual-host>www.site1.com<virtual-host>
</jboss-web>

2、全局应用程序配置

如果每个应用程序都有一些相同配置,则可以将这些配置提取到“全局配置文件”中

WEB-INF/web.xml      ---- deployers/jbossweb.deployer/web.xml

WEB-INF/context.xml ---- deploy/jbossweb.sar/context.xml

WEB-INF/jboss-web.xml  ---- 无

web.xml被称为标准部署描述符;context.xml和jboss-web.xml被称为专用部署描述符。

        在JBossweb工程,为了使用容器提供的一些特性,需要使用jboss-web.xml进行配置。以下是一个配置好的jboss-web.xml示例。 &lt;!DOCTYPE jboss-web PUBLIC "-//JBoss//DTD Web Application 5.0//EN" "http://www.jboss.org/j2ee/dtd/jboss-web_... 首先从JBoss的官方下载 相关的程序,我这里下载的5.1版本的----jboss-5.1.0.GA.zip,之后 解压文件。 1. 配置Jboss的环境变量 1)在jboss-5.1.0.GA\bin的目录下面 找到 “run.bat"文件,编辑此文件,在第一行加上-- ”set JAVA_HOME=JDK的安装目录“(如set JAVA_HOME=D:\Program Files\Jav 初次部署jbossweb应用,把tomcat/weblogic下的工程移植到jboss上发布 一、修改JBOSS应用服务器连接的数据库和端口:      1、端口修改:           4.*版:    ${JBOSS_HOME}/server--&gt;default--&gt;deploy--&gt;jbossweb.sar--&gt;server.xml           5.*版... JBoss Web和 Tomcat的区别 JBoss Web和 Tomcat的区别2009-12-14 11:18在Web2.0的浪潮中,各种页面技术和框架不断涌现,为服务器端的基础架构提出了更高的稳定性和可扩展性的要求。近年来,作为开源中间件的全 球领导者,JBoss在J2EE应用服务器领域已成为发展最为迅速的应用服务器。在市场占有率和服务满意度上取得了巨大的成功,丝毫不逊色于其它的非开源 最近接触到应用服务器JBoss,此外JBoss Web与Tomcat也同为web服务器,便查阅资料对三者进行比较,供大家参考。 一、Tomcat         Tomcat 服务器是免费开源的Web 应用服务器。支持最新的Servlet 和JSP 规范。因为Tomcat 技术先进、性能稳定,而且免费,因而深受Java 爱好者的喜爱并得到了部分软件开发商的认可,成为目前比较流行的Web 应用服 在JBossweb工程,为了使用容器提供的一些特性,需要使用jboss-web.xml进行配置。以下是一个配置好的jboss-web.xml示例。 <!DOCTYPE jboss-web PUBLIC "-//JBoss//DTD Web Application 5.0//EN" "http://www.jboss.org/j2ee/dtd/jboss-web_5_0.dtd"> 1、JBoss介绍JBoss完全实现了J2EE的服务栈:EJB (Enterprise JavaBeans)JMS (Java Message Service)JTS/JTA (Java Transaction Service / Java Transaction API)Servlet and JSP (JavaServer Pages)JNDI (Java Naming jboss web采用tomcat作为基础进行了优化,默认增加了apr功能,提高并发性能。安装和部署流程同tomcat。在安装前需安装jdk1.6及以上版本。 1.下载最新的jboss web2.1.9或3.0版本 http://www.jboss.org/jbossweb/downloads/jboss-web.html 2.下载 JBoss Web Native Connec JBOSS支持EJB,但Tomcat不支持.Tomcat 是一个小型的轻量级应用服务器,在中小型系统和并发访问用户不是很多的场合下被普遍使用,是目前较流行的Web应用服务器. JBoss在Tomcat的基础上,对其进行本地化,将Tomcat 以内嵌的方式集成到 JBoss 中. ... service.bat 使用简单介绍: service.bat install ---- Install Windows Service service.bat uninstall ---- Uninstall Windows Service service.bat start ---- Start Windows Service service.bat stop ---- Sto...