问题标签 [embedded-tomcat-8]
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
使用嵌入式 tomcat,此代码有效:
小服务程序:
JSP:
它设置属性,然后在 servlet的 jsp 页面test
上打印出来。/example
example.jsp
但是,如果我尝试在会话中设置属性,那么我不会得到相同的结果,相反,我会null
在使用这个时得到:
小服务程序:
JSP:
port - 配置 Spring Boot + tomcat 8 在非特权端口上运行
我有一个绑定到端口 8080 (http) 和 8888 (https) 的工作 spring boot + tomcat8 嵌入式应用程序。现在我正在寻找一种方法来配置应用程序以运行
a) 在特权端口上,即低于 1024 的端口,即端口 80 和 443
b) 应用程序应在非 root 用户帐户下运行。
c) 操作系统环境可以是任何 Linux 发行版,例如:debian/ubuntu 或 OpenBSD 发行版。
d) 解决方案最好稍后通过 Web 界面(即一些脚本)进行配置。
到目前为止,我在 INTERNET 上找到的只是一个配置非嵌入式 tomcat 实例和“authbind”的手册。但是我有一个嵌入式tomcat。“authbind”的手册页说:
“您必须使用 authbind 调用该程序。authbind 将设置一些环境变量,包括一个 LD_PRELOAD,如果系统配置为允许,它将允许程序(包括它可能运行的任何子进程)绑定到低编号(<512)端口。“</p>
我发出“ps - aux”,我得到了运行应用程序的用户名。我已将嵌入式 tomcat 配置为在端口 80 和 443 上运行,即在 cli 中发出命令:
现在我如何调用“authbind”下的嵌入式tomcat。如果“authbind”不是这个问题的正确解决方案,那么如何使用 spring boot 解决这个问题。
我收到的错误消息是:
ADDTION 1 我找到了一种如何从命令行执行此操作的方法,即从 spring 我做 maven build,目标设置为“package”,然后我转到我的 jar/war 文件所在的目标文件夹,然后我做
该应用程序绑定到端口 80 和 443,但不知何故我的 mvc thymeleaf 模板搞砸了。我需要通过 spring sts 自动化这个过程
file-upload - Spring-Boot + Tomcat 8.0.3 FileUpload 错误无法处理部分,因为没有提供多部分配置
我有一个工作的 spring-boot mvc 应用程序,我正在尝试集成文件上传选项。根据手册,我配置了以下模板:
/src/main/resource/templates/fileUpload.html
当我登录然后调用 http:/127.0.0.5:8080/upload 表单显示但是当我单击提交按钮时我得到了。错误信息
HTTP 状态 403 - 在请求参数“_csrf”或标头“X-CSRF-TOKEN”上发现无效的 CSRF 令牌“null”。
我去禁用 csrf 以查看如果禁用跨站点请求伪造(“.csrf().disable()”),表单是否可以正常工作。IE
当我在 csrf 被禁用期间尝试上传另一个文件时,我遇到了另一个错误,即:
HTTP 状态 500 - 请求处理失败;嵌套异常是 org.springframework.web.multipart.MultipartException:无法解析多部分 servlet 请求;嵌套异常是 java.lang.IllegalStateException: Unable to process parts 因为没有提供多部分配置
它说“没有提供多部分配置”,但我确实有配置 multipartConfigElement 的配置文件,即
我的 Application 类上方还有 @ComponentScan 注释和 @EnableAutoConfiguration ,即:
当应用程序启动时,我列出了由 spring 管理的所有 bean,并且我确实看到 bean“multipartResolver”正在启动。
与 fileUpload.html 关联的控制器:
当我在 get 方法处设置断点时,我看到该方法被命中并返回 fileUpload.html 视图。但是 post 方法根本没有被击中。
我不知道这是否相关,但我已在 Project-Properties-Deployment 程序集 - /src/main/resources 中设置为“/”,这是我在部署程序集配置中的唯一条目。
我之前读过,旧的 spring-boot RC 版本中存在文件上传错误。我目前正在使用 spring-boot 1.0.2.RELEASE。我的pom文件
这里添加的是评论中要求的完整 html 代码:
显示问题的工作 maven 项目的附加 2 链接
为了重现登录:
用户名:admin2 密码:#passwordD
然后去
上面描述的错误信息见。
加法3
当我删除我之前在应用程序类中的入口点邮件之前声明的 bean 时,我的特定问题得到了修复,即
我自己还没有回答这个问题,因为我还不明白为什么这种和平的代码会破坏上传功能。
servlets - @WebServlet 注释不适用于 Tomcat 8
我想@WebServlet
在 Tomcat 8 上运行的 Java EE webapp 中使用注释。
我已经读到我需要在我的 Servlet 版本 3.1 中声明,web.xml
并且我的 Servlet 需要扩展HttpServlet
. 我做了所有这些,但仍然@WebServlet
不起作用。我得到一个 HTTP 404。
metadata-complete="false"
我也尝试了我的配置web.xml
,但仍然没有成功。
这是我的 web.xml 和 Servlet。
完整的示例代码可以在 GitHub 上找到。
web.xml
TestServlet.java
tomcat - 如何配置嵌入式 tomcat 监听 80 和 8443 端口?
我正在使用带有 Spring 的嵌入式 Tomcat,并以编程方式将其配置为侦听端口 8443 以获取 https 并且它可以工作。下面是我的 Apllication.java 文件中的代码片段。如何将其配置为也侦听端口 80 的 http 请求?
java - 如何使用 Embedded Tomcat 8 和 Spring boot 将子域转换为路径
如何将子域重写为路径?
例子:
- foo.bar .example.com --> example.com /foo/bar
或者更好的是(反向文件夹):
- foo.bar .example.com --> example.com /bar/foo
请求foo.bar .example.com 应该在 /src/main/resources/static/ bar/foo中发送一个文件 /index.html 中发送一个文件。
对于 Apache2,它由mod_rewrite完成。我找到了有关使用Tomcat 8重写的文档,但问题是使用 spring boot 将这些文件放在哪里?
更新
我尝试使用UrlRewriteFilter,但似乎无法使用正则表达式替换在域路径中定义规则。
这是我的配置:
Maven依赖:
Spring Java Config 注册 Servlet 过滤器:
/src/main/webapp/WEB-INF 中的urlrewrite.xml
使用这个硬编码的域它可以工作,但它应该适用于这样的每个子域。
spring-boot - 带有 Hazelcast 和 Tomcat 的 Spring Boot
您如何使用 Hazelcast 作为带有 Spring Boot 和 Spring Security 的嵌入式 Tomcat 的 http 会话存储?我看到有一个 EmbeddedServletContainerCustomizer 和 SpringAwareWebFilter 但我不明白如何使用它。
spring-mvc - Spring MVC(引导)不发送某些文件的 MIME 类型(WOFF 等)
我正在编写一个基于 Spring Boot 的应用程序,并注意到 chrome 中有一些警告。它抱怨例如网络字体(扩展名 woff)作为纯文本而不是正确的 mime 类型发送。
我在没有特殊配置的情况下对静态文件使用常规机制。我发现的源代码看起来不可能为“stock”ResourceHandler 添加更多的 mimetypes。Resourcehandler 将 mime 类型识别分派到 servlet 容器,这是 spring-boot 1.2 的默认 tomcat。
我错过了什么吗?有人知道一种简单的方法来增强资源映射以提供更多具有正确 mime 类型的文件类型吗?
现在,我正在考虑编写一个过滤器,该过滤器会针对静态内容触发并在事后修补缺少的 mimetypes。也许我应该在 springsource 创建一个功能请求...... ;-)
spring - Spring Boot 不支持 @WebServlet
我创建了一个 Servlet(从 HttpServlet 扩展)并按照 3.0 规范进行了注释
我@Configuration
在 Spring Boot 中的课程扫描了这个 servlet 的包。但是,当我的 Spring Boot 应用程序启动时,它不会记录它已经在嵌入式 Tomcat 8.0.15 容器中部署了这个 servlet。
所以,我也添加@Component
到我的 servlet 中。现在,Spring Boot 注册 servlet(向我证明扫描包已正确设置),但随后它使用基于类名的 URL 模式注册它,使用驼峰式大小写。所以,这样更好 - 例如,我注册了一个 servlet,但 URL 映射错误!
如何让 Spring Boot 自动加载所有带@WebServlet
注释的 servlet 并尊重它们的 url 映射?
spring-boot - 如何使用嵌入式 Tomcat 将 JNDI 数据库连接与 Spring Boot 和 Spring Data 结合使用?
当我尝试使用嵌入式 Tomcat 服务器将 JNDI 数据源与 Spring Boot 和 Spring Data JPA 一起使用时,在使用 SpringApplication.run 运行应用程序时收到以下错误消息:
我使用How to create JNDI context in Spring Boot with Embedded Tomcat Container解决方案中描述的配置
唯一的区别是对 org.springframework.boot:spring-boot-starter-data-jpa 的附加 Maven 依赖
这是一个示例项目:https ://github.com/derkoe/spring-boot-sample-tomcat-jndi (这是解决方案中示例的修改版本)。只需检查、构建并运行 SampleTomcatJndiApplication。
用于查找数据库连接的 JNDI 上下文似乎还不是来自 webapp 的上下文。这似乎是 Spring 上下文和 Tomcat 服务器初始化中的排序问题。
任何想法如何解决这个问题?