ajax实现局部刷新过程-Servlet.ser…

本文详细介绍了在使用 Struts2 框架时遇到的一个常见错误:Servlet.service() for servlet default threw exception java.lang.IllegalStateException。通过将 Action 方法中的 return SUCCESS 更改为 null,成功解决了该问题。文章提供了错误堆栈信息的分析和解决步骤,对于熟悉 Struts2 和 Java 开发者来说,是一篇实用的技术指导。
严重: Servlet.service() for servlet default threw exception
java.lang.IllegalStateException
at org.apache.catalina.connector.ResponseFacade.sendError(ResponseFacade.java:407)
at org.apache.struts2.dispatcher.Dispatcher.sendError(Dispatcher.java:725)
at org.apache.struts2.dispatcher.Dispatcher.serviceAction(Dispatcher.java:485)
at org.apache.struts2.dispatcher.ng.ExecuteOperations.executeAction(ExecuteOperations.java:77)
at org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter.doFilter(StrutsPrepareAndExecuteFilter.java:76)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:293)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:849)
at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:583)
at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:454)
at java.lang.Thread.run(Thread.java:619)


仔细看了看,原来是在strut2的Action当中return SUCCESS
改成null就行了
<think>我们正在讨论Java中的命令行参数和配置文件中的属性设置。用户询问的是`--ser.port`和`ser.port`的区别。根据引用[2],我们知道在Spring Boot应用中,通常在`application.properties`或`application.yml`中设置`server.port`来指定服务端口。而`--ser.port`这种形式通常出现在命令行参数中。 在Spring Boot中,配置属性可以通过多种方式设置,包括: 1. 配置文件(如application.properties) 2 命令行参数(以`--`开头) 因此,`ser.port`(实际上应该是`server.port`)是配置文件中的属性名,而`--ser.port`是命令行参数写法,用于在启动应用时覆盖配置文件中的`server.port`值。 但是注意:在命令行参数中,我们通常使用完整的属性名,即`--server.port`,而不是`--ser.port`。因为属性名是`server.port`,所以命令行参数应该是`--server.port=8080`这样的形式。 那么用户提到的`--ser.port`可能是对`--server.port`的简写?实际上,在Spring Boot中,属性名可以使用缩写吗?答案是不可以,因为属性名必须完整。但是,Spring Boot允许使用短命令行参数(通过使用占位符)吗?通常,命令行参数必须使用完整的属性名。 不过,有一种可能性:用户可能在运行命令时使用了`--`后面紧跟着属性名,但写错了?或者,在某些框架中,可能有不同的约定。 另外,引用[4]提到了一个错误信息:“couldn't determine local port. Please supply service-base-url.”,这可能是由于端口配置问题导致的,但与我们讨论的问题关系不大。 总结: - `ser.port`(应该是`server.port`)是配置文件中的属性,用于设置服务器端口。 - `--ser.port`作为命令行参数是不标准的,标准的应该是`--server.port`。 因此,我们主要解释标准的用法。 回答结构: 1. 解释配置文件中的设置(server.port) 2. 解释命令行参数(--server.port) 3. 说明用户提到的--ser.port可能是笔误,正确应该是--server.port 4. 给出示例 同时,根据系统级指令,我们需要在行内数学公式中使用$...$,独立公式使用$$...$$,但这个问题中可能不需要数学公式。另外,生成相关问题。 最后,注意引用标识,我们在引用[2]的地方添加引用标识。 </think> ### Java中 `--ser.port` 和 `ser.port` 的区别 #### 1. **`ser.port` (配置文件属性)** - **定义**:用于配置文件(如 `application.properties` 或 `application.yml`)中设置服务器端口。 - **语法**:`server.port=8080`(Spring Boot 标准属性名[^2]) - **作用**: - 指定 Spring Boot 应用启动时的监听端口 - 需在配置文件中显式声明,例如: ```properties # application.properties server.port=8889 ``` - **特点**: - 属 **静态配置**,应用启动时加载 - 优先级低于命令行参数[^2] #### 2. **`--ser.port` (命令行参数)** - **定义**:通过 JVM 命令行传递的动态参数,覆盖配置文件中的设置。 - **语法**:`java -jar app.jar --server.port=8080`(正确格式应为 `--server.port`) - **作用**: - 运行时动态修改端口,无需修改配置文件 - 适用于临时调整或测试环境 - **特点**: - 属 **动态覆盖**,优先级高于配置文件[^2] - 参数名必须以 `--` 开头(如 `--server.port`) - 若写作 `--ser.port` 是 **错误缩写**,会导致配置失效(正确属性名为 `server.port`) #### 关键区别 | **特性** | `ser.port` (配置文件) | `--ser.port` (命令行参数) | |-------------------|----------------------------|-----------------------------| | **使用场景** | 固定环境配置 | 临时调整或动态覆盖 | | **优先级** | 低(被命令行参数覆盖) | 高(覆盖配置文件) | | **正确写法** | `server.port=8080` | `--server.port=8080` | | **修改方式** | 需编辑配置文件 | 启动命令中直接添加 | | **常见错误** | 拼写错误(如 `ser.port`) | 缺少 `--` 或属性名缩写[^4] | > **示例验证** > 若启动命令包含 `--ser.port=8080`,系统会忽略该参数(因 `ser.port` 非法),转而采用配置文件的 `server.port` 或默认端口 8080。正确命令应为: > ```bash > java -jar your_app.jar --server.port=8080 > ``` #### 调试建议 当出现端口绑定异常(如 `Connect reset by peer`[^1])时: 1. 检查命令行参数是否使用 `--server.port`(非 `--ser.port`) 2. 确认配置文件中无拼写错误(应为 `server.port`) 3. 通过 `netstat` 验证端口占用情况
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值