asf听不到声音怎么解决_在ASF Tomcat上运行IBM i Web解决方案

ASF Tomcat(在本文中简称为Tomcat )是由Apache Software Foundation(ASF)开发的开源Web服务器和servlet容器。 Tomcat具有出色的性能,并且已经与来自世界各地的顶尖开发人员合作。 与以前的版本相比,Tomcat V7实现了Servlet 3.0和Java™Server Pages(JSP)2.2规范,并为包括IBM i在内的大多数操作系统提供了许多增强功能。 几年前,IBM i实际上在IBM i中包括了Tomcat。 IBM发行的最后一个版本是版本3.2.4。 本文所涵盖的不是这种支持。 不将Tomcat包含在IBM i中的主要原因之一是,Tomcat是纯Java应用程序,可以轻松,轻松地在IBM i上下载并启动,就像您将在本文中看到的那样。

IBM HTTP Server for i是一个Web服务器实现,它基于Apache Software Foundation提供的开源服务器代码,并且针对IBM i环境进行了优化。 适用于IBM i 7.1的i上的HTTP Server基于Apache 2.2.11,并且所有与HTTP Server相关的安全漏洞(称为常见漏洞和披露[CVE])均已通过HTTP Server程序临时修订(PTF)进行了修补,以确保PCI合规性。 很长时间以来,IBM i团队一直在使用IBM i版本的Apache HTTP服务器。 由于HTTP服务器建立在C之上,因此需要特别为IBM i创建二进制文件,以利用IBM i OS带来的优势。 自2000年以来,此支持已成为DG1产品的一部分。

将Tomcat和HTTP Server for i两种技术结合在一起,以充分利用它们在IBM i平台边缘的优势,是一个很好的解决方案。 本文以IBM i 7.1和Tomcat 7.0.28为例。 在IBM i 6.1上,同样的支持也将同样运行。 您只需要替换正确的IBM i 6.1实体即可。

Tomcat服务器可以连接到IBM i上的本地或远程HTTP Server。 图1和图2分别说明了不同的情况。

图1.同一IBM i系统上的i的Tomcat和HTTP Server(本地模式)
同一IBM i系统上的Tomcat和HTTP Server for i(本地模式)
图2.不同IBM i系统上的i的Tomcat和HTTP Server(远程模式)
适用于不同IBM i系统上的Tomcat和HTTP Server for i(远程模式)

软件先决条件

上一节提供了针对i的Tomcat和HTTP Server的基本介绍。 为了使您的Web应用程序在Tomcat上成功运行,需要以下许可程序,PTF和软件。

  • 许可程序
    Tomcat V7可以在Java Development Kit(JDK)1.6 32位或JDK 1.6 64位上运行。 本文以JDK 1.6 32位为例。
    • 5770-SS1选项30 QSH
    • 5770-DG1 *适用于i的BASE IBM HTTP Server
    • 5761-JV1 * BASE Java Java开发人员工具包
    • 5761-JV1选项11 Java SE 6 32位
  • 所需的PTF
    • 适用于5770DG1的最新PTF组(最低SF99368-14级)
    • Java的最新PTF组(最低SF99572-10级)
  • 非授权软件

在IBM i上安装Tomcat V7

在准备好所有软件之后,执行以下步骤以在IBM i上安装Tomcat V7.0.28。

  1. 将Tomcat V7.0.28发行版上载到IBM i,并将其放置在集成文件系统目录中,例如/ home / download。
  2. 在Qshell中提取Tomcat分发文件。
    cd / home /下载
    jar -xvf apache-tomcat-7.0.28.zip
  3. 设置JAVA_HOME环境变量。 为了启动和运行Tomcat,它需要知道Java虚拟机(JVM)的位置。 该信息需要添加到Tomcat配置文件中。 编辑Tomcat配置文件: /home/download/apache-tomcat-7.0.28/bin/setclasspath.sh。 将Java主目录信息添加到文件中。 以下是Java主页信息。 导出-s JAVA_HOME = / QOpenSys / QIBM / ProdData / JavaVM / jdk60 / 32bit /
    图3.在IBM i上导出JAVA_HOME
    在IBM i上导出JAVA_HOME
  4. 在IBM i上启动Tomcat V7。
    1. 验证Tomcat使用的端口的可用性。 Tomcat默认使用8005、8080和8009,其中8080​​是默认的HTTP端口。 输入命令NETSTAT OPTION(* CNN)以验证端口是否正在使用。 如果端口8009和8080被占用,请编辑配置文件/home/download/apache-tomcat-7.0.28/conf/server.xml,将默认端口8005、8009和8080更改为其他未使用的端口。 如果在此IBM i上运行多个Tomcat服务器,则将需要对这些值使用不同的端口。
      图4.编辑Tomcat默认端口
      编辑Tomcat默认端口
    2. 更新应用程序Tomcat Web应用程序管理器应用程序的配置。 以Tomcat默认Web应用程序Tomcat Web Application Manager为例,以验证Tomcat服务器在IBM i上是否正常工作。 因此,我们需要在启动Tomcat之前更新应用程序的配置。
      • 编辑/home/download/apache-tomcat-7.0.28/conf/tomcat-users.xml以确保可访问示例应用程序。
      • 在所有现有角色元素之后添加<role rolename =“ manager-gui” />。
      • 在所有现有用户元素之后添加<user username =“ admin” password =“ admin” role =“ manager-gui” />。
      图5.编辑Tomcat用户文件
      编辑Tomcat用户文件
    3. 启动Tomcat。 Tomcat已成功安装和配置。 现在可以开始通过Qshell中的脚本开始了。 切换到Tomcat bin目录,在此示例中为/home/download/apache-tomcat-7.0.28/bin。 此目录中有几个有用的脚本,例如:startup.sh,shutdown.sh,setClasspath.sh,Catalina.sh等。 在Qshell中运行startup.sh脚本以启动Tomcat服务器。
      /startup.sh
      图6.使用shell脚本启动Tomcat
      使用Shell Scrip启动Tomcat
    4. 验证Tomcat已在IBM i上启动。 通过输入CL命令WRKACTJOB验证Tomcat服务器是否正在运行。 在QINTER子系统中查找QP0ZSPWT作业,并确保其状态为TIMW 。 Tomcat Server可以在用户定义的子系统中运行。 计划在将来发布的文章介绍了如何在专门的子系统中运行Tomcat以及其他高级主题。
      图7. IBM i上的Tomcat作业
      IBM i上的Tomcat作业
    5. 验证Tomcat在IBM i上是否可以正常工作。
      • 打开Web浏览器,然后输入URL http://your.server.name:8080/manager。
      • 出现提示时,输入默认的用户ID和密码(admin / admin)。 显示管理器应用程序,如下图所示:
        图8. Tomcat Web应用程序管理器主页
        Tomcat Web应用程序管理器主页

        现在,Tomcat已成功安装在IBM i上。 如果要停止Tomcat,请在Qshell中运行/home/download/apache-tomcat-7.0.28/bin/shutdown.sh脚本。

        图9.在QSH中停止Tomcat
        在QSH中停止Tomcat

下一节介绍如何将HTTP Server for i与Tomcat关联以在IBM i上创建完整的生产Web环境。

将i的HTTP Server与Tomcat关联

执行以下步骤,将i的HTTP Server与Tomcat关联。

  1. 为i创建一个HTTP Server实例。
    在将HTTP Server与Tomcat关联之前,必须存在用于我的HTTP Sever实例。 IBM Web Administration for i(http://your.server.name:2001/HTTPAdmin)可以帮助为i创建HTTP服务器实例。 请参阅IBM i信息中心,以获取有关为i创建HTTP Server实例的更多详细信息。 本文以实例httpserver(根目录:/ www / httpserver,端口:5555)为例,以演示如何在IBM i上配置i的HTTP Server并将其与Tomcat关联。
  2. 为i配置HTTP服务器。
    为了将HTTP Server for i与Tomcat关联,需要使用Tomcat插件模块作为HTTP Server和Tomcat之间的连接器,以将来自HTTP Server for i的请求路由到Tomcat,并将响应从Tomcat返回到HTTP Server。 。 5770DG1许可证程序包含的默认Tomcat插件服务程序是QHTTPSVR / QZTCJK。
    1. 将server.xml从Tomcat复制到HTTP Server for i。
      如果Tomcat和i的HTTP Server位于同一IBM i服务器上,请将server.xml从/home/download/apache-tomcat-7.0.28/conf目录直接复制到/ www / httpserver / conf目录。 如果Tomcat和HTTP Server for i安装在不同的IBM i服务器上,请将server.xml从Tomcat所在的服务器复制到HTTP Server所在的服务器。
    2. 生成worker.properties。
      在/ www / httpserver / conf目录中创建worker.properties文件。 将以下代码行添加到worker.properties文件中:
      worker.list=worker1                   
                  worker.worker1.type=ajp13             
                  worker.worker1.port=8009              
                  worker.worker1.host=f4p04.cn.ibm.com
      图10.使用Programming Development Manager(PDM)编辑worker.properties
      使用编程开发管理器(PDM)编辑worker.properties

      属性文件的描述:

      • worker.list = worker1
        Tomcat worker的名称worker1用作默认名称。
      • worker.worker1.type = ajp13
        默认情况下,用于在HTTP Server for i和Tomcat之间交换数据的协议ajp13。
      • worker.worker1.port = 8009
        默认情况下,使用HTTP Server for i和Tomcat之间的通信端口8009。
      • worker.worker1.host
        Tomcat运行所在的服务器的IP地址或主机名。 如果Tomcat和HTTP Server位于不同的服务器上,则该值表示Tomcat所在的服务器。
    3. 编辑配置文件。
      编辑/www/httpserver/conf/httpd.conf文件。 将Tomcat插件相关的指令添加到httpd.conf。
      LoadModule jk_module /QSYS.LIB/QHTTPSVR.LIB/QZTCJK.SRVPGM 
                  JkWorkersFile /www/ct/conf/workers.properties             
                  JkLogFile /www/ct/logs/jk.log                             
                  JkLogLevel debug                                          
                  JKMount /manager/* worker1
      图11.将Tomcat插件相关的指令添加到httpd.conf
      将Tomcat插件相关的指令添加到httpd.conf
      指令说明:
      • LoadModule jk_module /QSYS.LIB/QHTTPSVR.LIB/QZTCJK.SRVPGM:伪指令指定HTTP服务器为i与Tomcat服务器通信而由HTTP服务器加载的Tomcat插件模块。 它必须是配置文件中的第一项。
      • JkWorkersFile /www/httpserver/conf/workers.properties:该指令指定Tomcat Servlet容器的工作文件的名称。 它只能在配置文件中使用一次,并且必须放入全局配置区域。
      • JkLogFile /www/httpserver/logs/jk.log:该指令指定Tomcat插件的日志文件的完整路径名。
      • JkLogLevel调试:伪指令指定由JkLogFile定义的日志文件的日志级别。)
      • JKMount / manager / * worker1:该指令指定从上下文到Tomcat worker的安装点。 它可以在配置文件中多次使用,并且可以在全局配置和VirtualHost区域中指定。
  3. 验证Tomcat和i的HTTP Server之间的关联。
    使用STRTCPSVR SERVER(* HTTP)HTTPSVR(httpserver)CL命令为i启动HTTP Server。 打开Web浏览器,然后输入URL: http:// IP地址或主机名:port / manager / 。 通过HTTP Server主机名和端口显示的页面应与通过Tomcat主机名和端口(8080)显示的页面完全相同。 参见图8。
    注意:如果Tomcat和i的HTTP Server位于不同的服务器上,请用运行i的HTTP Server的服务器的IP或主机名替换IP地址或主机名

在Tomcat上部署IBM i Web应用程序

现在,用于i和Tomcat的HTTP Server已在IBM i和Tomcat示例应用程序Tomcat Application Manager上关联在一起,可以通过用于i的HTTP服务器进行访问。 本部分介绍如何在Tomcat上部署IBM i Web应用程序。 提供了一个示例应用程序(TomcatTestServlets),以使用IBM Toolbox和本机IBMDB2®JDBC驱动程序测试数据库查询的时间(请参阅附件1和2以获取.war文件和源代码)。

  1. 此样本使用数据源,您需要编辑配置文件以将数据源添加到Tomcat配置文件和您的应用程序中。 如果您的应用程序不需要数据源,则可以忽略此步骤。
    1. 编辑/home/download/apache-tomcat-7.0.28/conf/server.xml配置文件。 在<GlobalNamingResources>节点中插入以下行以添加数据源:
      Resource auth="Container"
                        driverClassName="com.ibm.db2.jcc.DB2Driver"
                        name="jdbc/TEST" 
                        username="test"
                        password="test"
                        type="javax.sql.DataSource"
                        url="jdbc:db2://ip | hostname:port/DBName"
                          maxActive="8"
                          maxIdle="4"
                          maxWait="10000"/>

      新的配置文件server.xml如下所示:

      图12.在server.xml文件中添加数据源
      在server.xml文件中添加数据源

      资源属性说明:

      • auth:数据源的身份验证类型。 该值必须为ApplicationContainer 。 默认值为Container
      • driverClassName:要使用的JDBC驱动程序的标准Java类名称。
      • name:数据源的合格名称。
      • username:要传递给JDBC驱动程序的数据库用户名
      • password:要传递给JDBC驱动程序的数据库密码。
      • 类型: Web应用程序对此资源执行查找时期望的合格Java类名称。
      • url:要传递给JDBC驱动程序的连接URL。
      • initialSize:池初始化期间将在池中创建的初始连接。 默认值:0
      • maxActive:可以同时从该池分配的最大连接数。 默认值:8。
      • minIdle:同时处于空闲状态的最小连接数。 默认值:0
      • maxIdle:可以同时处于空闲状态的最大连接数。 默认值:8
      • maxWait:池等待返回连接的最大持续时间(以毫秒为单位)。 默认值:-1(无限)
    2. 编辑/home/download/apache-tomcat-7.0.28/conf/context.xml配置文件。 将以下行插入<context />节点中。 此项指定到server.xml中定义的数据源的链接
    3. 编辑TomcatTestServlets / WebContent / WEB-INF / web.xml配置文件。 将以下行添加到该文件的末尾。 这些行指定对server.xml中定义的数据源的引用
      • name:指向server.xml中定义的数据源的链接的限定名称。
      • global:全局Java命名和目录接口(JNDI)上下文中链接的全局资源的名称。
      • 类型: Web应用程序对此资源执行查找时期望的合格Java类名称
        图13.在context.xml中添加到数据源的链接
        在context.xml中添加到数据源的链接
      • res-ref-name:数据源链接或数据源本身的限定名称。 该值必须与context.xml中定义的资源链接的名称相同。
      • res-type: Web应用程序对此资源执行查找时需要的合格Java类名称。
      • res-auth:数据源的身份验证类型。 该值必须是Application或Container。 默认值:容器。
    4. 编辑配置文件:TomcatTestServlets / WebContent / WEB-INF / web.xml。 将以下行添加到文件的末尾。 这些行指定对server.xml中定义的数据源的引用:

      resource-ref
              res-ref-name /jdbc/TEST /res-ref-name
              res-type    javax.sql.DataSource res-type
              res-auth    Container res-auth
              /resource-ref

      新的配置文件web.xml出现,如图14所示。

      图14.在web.xml中添加对数据源的引用
      在web.xml中添加对数据源的引用
  2. TomcatTestServlets.war复制到IBM i上的/home/download/apache-tomcat-7.0.28/webapps目录中。
  3. 编辑/www/httpserver/conf/httpd.conf配置文件。 从示例应用程序Web根(TomcatTestServlets)向httpd.conf中的 Tomcat worker(worker1)添加新的安装点
    JKMount / TomcatTestServlets / * worker1
    新的配置文件httpd.conf如图15所示。
    图15.通过HTTP Server for i查看应用程序
    通过HTTP Server for i查看应用程序
  4. 重新启动Tomcat和HTTP Server for i。 输入URL: http : //192.168.0.101 : 5555/TomcatTestServlets/DBTimerServlet来验证应用程序。 进入如图16所示页面。
    图16.通过HTTP Server for i查看应用程序
    通过HTTP Server for i查看应用程序

附件

  1. TomcatTestServlets.war:

    注意:要下载代码,请右键单击链接,然后选择另存为将链接另存为 。)

  2. TomcatTestServlets-源代码:

摘要

今天,许多客户希望在IBM i上使用Tomcat,因为IBM i是运行任何高度多线程工作负载(例如Tomcat)的绝佳平台。 但是,当前IBM i上的IBM许可程序不包含Tomcat。 本文为您提供了一个可行的解决方案,说明了如何在IBM i上部署和定制Tomcat,将Tomcat与i的HTTP Server关联以及如何在全面生产的Web环境中运行Web解决方案。 此外,计划在将来发布的文章将重点介绍一些高级主题,例如运行在IBM i上安装Tomcat V7部分中提到的运行Tomcat指定的子系统,在IBM i上对Tomcat和HTTP Server的性能进行调整,等等。 享受您在IBM i!上使用Tomcat的经验。


翻译自: https://www.ibm.com/developerworks/ibmi/library/i-websolution-asf-tomcat/index.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值