问题标签 [tomcat9]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
java - 如何使用注释将 Servlet 操作映射到 JSP 路径?
我有一个简单的 Maven servlet/jsp 应用程序,我将它部署到本地 Tomcat 9(通过 Eclipse)。JSP 页面存储在根文件夹 ( src\main\webapp\*.jsp
) 下,当 Maven 安装 WAR 时,它们位于根文件夹 (MyAppContext\*.jsp
旁边MyAppContext\META-INF\
和MyAppContext\WEB-INF\
)。
servlet 的 URL 模式针对每个 servlet 进行了注释,例如/doactionone
、/doactiontwo
等。大多数 servlet 执行对各种 JSP 页面的分派,但我确实有一个直接锚链接。
我想将这些 JSP 页面移动到它们各自的目录中,所以我将它们移动到src\main\webapp\jsp\*.jsp
文件夹中,当 Maven 安装运行时,它们被放置在MyAppContext\jsp\
.
我拥有的唯一条目web.xml
是一个欢迎文件,在重新定位 JSP 文件之后,它指向jsp\doactionone.jsp
加载相应 JSP 页面的文件。此页面包含一个简单的表单:
此页面上的提交实际上调用了正确的 servlet(使用doactionone
URL 模式定义的那个)。我还有一个链接可以将用户带到第二页 ( doactiontwo.jsp
)。
然而,当我通过这个链接导航到第二个页面时,它有另一个简单的表单(见下文),并执行提交(post),我在浏览器的调试中看到 URL 请求是http://localhost:8080/MyAppContext/jsp/doactiontwo
,由于显而易见的原因,它会返回一个404 状态(并且对此 servlet 的doPost()
(或doGet()
)方法也没有命中)。
如果我尝试将第二个 servlet 的 URL 模式修改为/jsp/doactiontwo
,我可以点击 servlet,但是doactiontwo
在处理到第一个 servlet ( doactionone
) 后实际调度/转发请求时:
当它被加载时,当将鼠标悬停在最初指向第二个 JSP 页面 ( <a href="jsp/doactiontwo.jsp">
) 的第一页上的 URL 上时,现在实际上指向:
有趣的是,doactionone.jsp 的源代码仍然显示为jsp/doactiontwo.jsp
,但将鼠标悬停在它上面显示http://localhost:8080/MyAppContext/jsp/jsp/doactiontwo
,并且单击时,它显然会导致 404 状态。
有人可以解释为什么,首先,第二个 JSP 页面上的提交需要 servlet 具有/jsp/doactiontwo
工作模式而不是/doactiontwo
? 有没有办法避免附加/jsp
到 URL 模式?
其次,为什么当第二个 servlet 处理请求并将其分派/转发到第一页时,URL 现在包含两个jsp/
'?
java - 无法使用 tomcat 9 在 Intellij 中热交换 html 文件
我是 IntelliJ 的新手,我创建了一个运行配置来使用 intellij 调试我的 Web 应用程序。
我所做的是:
- 在 intellij 调试模式下运行我的应用程序,并看到服务器成功启动,html 文件正确呈现。
- 修改了一个java文件。
- 修改了一个html文件。
- 救了他们。
- 单击 intellij 窗口外的某处以触发热交换。
- 我看到弹出消息说只更新了 1 个文件(它是 java 文件)。
我发现的问题是:
- html 从未更新。
我注意到的是:
- java文件被重新编译并成功“热交换”。
- html 文件没有“热交换”:
- 浏览器中的页面没有反映我所做的更改。
- 即使我在浏览器中手动刷新网页,html 也没有更新。
- 如果我只修改 IntelliJ 中的 html 文件,弹出窗口总是会说“加载的类是最新的。没有要上传的”。
- 但是我验证了html源改成功了,部署到炸开的war目录下的html文件也改成功了。
- 当我单击“重新部署”按钮时,我可以看到 html 得到更新。
- 我也尝试将 cachingAllowed="false" 添加到 tomcat context.xml 文件,但没有运气。
- html 文件没有“热交换”:
我的问题是:
- 如何使用 tomcat9 在 IntelliJ 中启用热插拔?(我错过了什么吗?)
- “热插拔”和“重新部署”有什么区别?
谢谢。
IntelliJ 版本:Ultimate 2018.1
Tomcat版本:apache-tomcat-9.0.7
docker - Apache mod_proxy 的问题
我有一个在 IP 为 172.17.0.2:8080 的 docker 内运行的 tomcat 服务器,其 webapp 名为“app1”。
我有一个 Apache 服务器正在运行,用于将请求重定向到 tomcat 服务器,默认页面显示“它可以工作!” 这是我的虚拟主机配置:
现在,如果我点击 localhost 那么“它可以工作!” 页面加载。
如果我点击 localhost/app1 然后 tomcat webapp 页面加载。
如果我点击 172.17.0.2:8080/app1 然后 tomcat webapp 页面加载。
如果我点击 172.17.0.2/app1 则没有加载任何页面,并且显示的错误是“连接被拒绝”。在这里,我希望加载 tomcat webapp 页面,因为我已将 ServerName 设置为 172.17.0.2
基本上我想要做的是在 docker 容器内的同一台机器上运行多个服务器,而不是在多台机器上运行单个服务器。
难道我做错了什么?
spring-mvc - Spring 安全 mvcMatchers
我正在学习 spring-security 并创建了简单的应用程序来学习匹配器。不幸的是,我无法mvcMatchers
上班。另一件事是它与antMatchers
. 请在下面查看它的来源。
1) pom.xml 中的依赖项:
2)MvcWebApplicationInitializer:
3) MvcWebConfig
4)安全配置:
5) 安全WebInitializer:
6) 我的控制器
7) index.html 只是简单的 Themeleaf 模板来输出消息
我将应用程序打包为war,将其部署到Tomcat 9应用程序服务器,然后打开warname/unsecured
URL warname/secured/msg
,它按预期工作(不安全仅输出消息'不安全',安全要求登录/密码。登录后显示带有消息'安全'的页面)。当我在导航到这两个 url 中的任何一个时发表评论antMatchers
和取消评论时,会给我标准的 404 Tomcat 页面。我尝试提供不同的模式,例如:, , , , 每次我得到 404。在远程调试应用程序时我发现它似乎没有被调用,而在尝试访问页面期间被调用。你能告诉我如何让应用程序以与现在相同的方式工作吗mvcMatchers
SecurityConfig
mvcMatchers
/secured/msg
/secured/msg/
secured/msg
/secured/msg/*
mvcMatcher.match
antMatcher.match
warname/secured/msg
mvcMatchers
antMatchers
?
java - Tomcat Java Web 应用程序 OAuth2 登录。org.apache.catalina.LifecycleException:无法启动组件
我正在尝试将 OAuth2 google 身份验证添加到我的 Java Tomcat Web 应用程序中。我收到以下错误:
我想我错过了一些罐子:对于 google Oauth2,我包含了以下罐子:google-api-client-1.23.0.jar google-http-client-1.23-0.jar google-http-client-jackson2-1.23.0 .jar google-oauth-client-1.23.0.jar
和java代码看起来像:
spring - org.apache.jasper.JasperException 在 logback 中丢失,但写入 tomcat9 localhost.log
我的目标是让所有应用程序级别的日志记录到我的应用程序日志文件中。我的问题是,虽然我的许多调试/信息/错误消息都出现在 STDOUT/File 等...这里有一个错误只显示在我的 tomcat9 日志中:
我正在使用 jdk 10、Spring 5.0.5、Hibernate 5.3、Logback 1.2.3
这是我的 logback.xml
这是我的 ivy.xml
似乎 JSP/view/tiles/dwr 错误是我在 STDOUT 中缺少的错误
java - 在非root用户下启动tomcat 9
抱歉,这可能是一个愚蠢的问题,但我对 Tomcat(和一般的 Linux)几乎没有经验。我启动了一个全新的 AWS Ubuntu 16.04,安装了 Java 8(满足我们的应用程序兼容性要求)和 Tomcat9(在 /opt/tomcat9 文件夹中)。我创建了一个 tomcat9 用户,我打算在该用户下运行 Tomcat。我已将 ssl 证书复制到 /etc/ssl-keystore 并在server.xml中设置 ssl 连接器
我已将 /opt/tomcat9 文件夹的所有权更改为tomcat9用户:
如果我开始使用tomcat
我在catalina.out中收到此错误:
你能告诉我我错过了什么或应该添加什么权限吗?我已经花了很多时间研究这个(包括stackoverflow站点)并阅读了多个教程,但我找不到相关/有用的答案。非常感谢。
java - Tomcat 9 无法登录管理器/html
我不确定为什么我无法登录,这里是权限:
我昨天从 Ubuntu 的 tomcat 官方网站上安装了它。我认为所有的权限都是正确的。谢谢!
macos - 如何让 IntelliJ UE 和 Tomcat 9 运行我的 Web 应用程序?(苹果系统)
我到处寻找这个。我确定我已经正确阅读了这些信息,但似乎无法完全理解它。
我使用本教程进行操作(https://www.jetbrains.com/help/idea/2016.3/creating-and-running-your-first-web-application.html)。我一步一步做所有事情,但是在运行我的网络应用程序时,本地主机显示的是 Tomcat 的官方页面,而不是我创建的 index.jsp。我已经尝试了每种路径组合来尝试显示我的索引,但我没有运气。
我对此进行了很多谷歌搜索,似乎当我运行 tomcat 时,它从 webapps/ROOT 文件夹而不是我的项目文件夹中读取文件。如何让我的 intellij 或 tomcat 从我的项目中读取文件?我一直在阅读它是我的运行配置,但对我来说一切看起来都不错,没有人真正展示实际要做什么。
除非我自己尝试这样做了几个小时,否则我不会问。很抱歉,如果它真的很简单,我就是看不到它,非常感谢您的帮助。提前致谢