【问题标题】:Spring and mod_jk jsp source in the response响应中的 Spring 和 mod_jk jsp 源
【发布时间】:2014-05-13 18:23:29
【问题描述】:

我有弹簧控制器,还有 apache + mod_jk + tomcat。因此,在响应中向我的控制器发出请求后,我得到了 jsp 源代码

mod_jk 配置:

<VirtualHost <some ip>:8000>
        ServerName <host>
        ServerAlias <alias> 
        DocumentRoot <path>
        JkMountCopy On
</VirtualHost>
JkWorkersFile <path>/workers.properties
JkMount /app* worker1

workers.properties

worker.list=worker1
worker.worker1.port=18001
worker.worker1.secret=some_secret
worker.worker1.host=localhost

我如何理解 apache 成功接收请求 => mod_jk 将其重定向到 spring 控制器。 问题是接下来会发生什么? spring 是否将响应正文转换为 jsp 页面,并将其转发给 apache?我该如何解决这个问题?

【问题讨论】:

  • 尝试直接从tomcat打开这个页面,不用mod_jk代理。它有效吗?我怀疑。
  • @LeosLiterak 在 localhost 上验证 jsp 和控制器都正常工作
  • 嗯,modjk 只是一个代理,不会影响处理。奇怪
  • 该文件是通过 Apache Web 服务器而不是 Tomcat 提供的。您的 mod_jk 配置不正确。请张贴。
  • @Stefoan 我已经添加了配置

标签: java spring apache tomcat mod-jk


【解决方案1】:

这是一个有效的配置,也许您可​​以找到您的配置中缺少的任何内容:

  1. httpd.conf(必须在httpd.conf中激活Mod_jk模块):

    LoadModule jk_module modules/mod_jk.so
    
    #### JK CONFIG
    
    JkWorkersFile   D:\Server\jk\workers.properties
    JkLogFile       D:\Server\jk\mod_jk.log
    JkShmFile       D:\Server\jk\jk-runtime-status
    JkLogLevel      warning
    
    JkMount /modjkstatus    stats
    
  2. workers.properties:

    worker.list=stats,node1
    
    worker.node1.type=ajp13
    worker.node1.host=localhost
    worker.node1.port=8009
    
    #status information (optional)
    worker.stats.type=status
    
  3. 虚拟主机配置

    JkMount /myapp                node1
    JkMount /myapp/*              node1
    
  4. 重启 Apache 并检查 error.log 和 mod_jk.log

  5. 检查worker.properties 中的ajp 端口是否与server.xml 中的apj 连接器端口 匹配。
  6. 启动 Tomcat。
  7. 访问 /modjkstatus。如果 modjk 工作正常,您应该会看到一个信息页面。
  8. 访问 /myapp。

【讨论】:

  • 没有结果,我调试了 mod_jk 并在日志中看到 tomcat 返回了 jsp 源。问题是服务器上的 tomcat 有什么问题(在本地它工作),因为我的 tomcat 是由我们的 IT 部门而不是我配置的。一般来说,是否有可能禁止在 apache + tomcat 上执行 jsp?
  • 是,如果 JSP servlet 被禁用或映射错误。见[tomcat-folder]/conf/web.xml,应该是225和360行,或者搜索'org.apache.jasper'。
  • 你说得对,谢谢!原因是 jsp 编译器被禁用,请参阅 tomcat\conf\web.xml 中的 org.apache.jasper.servlet.JspServlet。 It-team 说它是生产的推荐选项)
猜你喜欢
  • 1970-01-01
  • 2012-07-11
  • 2015-11-26
  • 2018-09-07
  • 1970-01-01
  • 2012-11-02
  • 1970-01-01
  • 2012-08-05
  • 2015-03-18
相关资源
最近更新 更多