我的应用程序是从java -jar开始的,版本为1.5.6.RELEASE的spring boot.
我的一个请求的内容具有字符"{".当它被发送到服务器时,引发以下异常:
java.lang.IllegalArgumentException:在请求目标中找到无效字符.有效字符在RFC 7230和RFC 3986中的org.apache.coyote.http11.Http11InputBuffer.parseRequestLine(Http11InputBuffer.java:472)中定义,位于org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:683)at at Org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:66)org.apache.coyote.AbstractProtocol $ ConnectionHandler.process(AbstractProtocol.java:868)org.apache.tomcat.util.net.NioEndpoint $ SocketProcessor. doRun(NioEndpoint.java:1455)位于java.util的java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)的org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49) .concurrent.ThreadPoolExecutor $ Worker.run(ThreadPoolExecutor.java:617)atg.apache.tomcat.util.threads.TaskThread $ WrappingRunnable.run(TaskThread.java:61)at java.lang.Thread.run(Thread.java) :745)
哪里错了?我如何解决它?
编辑1:
我的休息是这样的:
var jsonData = {
id: $("#hiddenId").val(),
permitNumber: $("#txtPermitNumber").val(),
permitToDate: $("#txtPermitToDate").val()
}
document.location = restUrl + "/print?reportParams= " + JSON.stringify(jsonData);
Run Code Online (Sandbox Code Playgroud) 您假设有一个对象列表。该列表按该对象的一个或多个字段排序。所以根据排序列表,我想用增量值设置该对象的字段。
为了澄清,请注意以下示例:
public class ObjectTest {
int id;
int userId;
int code;
}
Run Code Online (Sandbox Code Playgroud)
和上面的 ObjectTest 一样,任何用户都有自己的代码。
有一个 ObjectTest 列表。
List<ObjectTest> objTests;
Run Code Online (Sandbox Code Playgroud)
它是排序的:
objTests.sort(Comparator.comparing(DataSet::getUserId).thenComparing(DataSet::getCode));
Run Code Online (Sandbox Code Playgroud)
因此,在按 userId 和代码排序后,我想将值从 1 设置为任何用户都有自己的代码的位置。当 userId 更改时,增量值再次重置为 1。
如果有以下ObjectTest的集合。
id userId code
--------------------------------
100 5
200 6
100 7
200 9
200 10
100 2
Run Code Online (Sandbox Code Playgroud)
在解释了上面的场景之后,下面的集合将是:
id userId code
1 100 2
2 100 5
3 100 7
1 200 6
2 200 9
3 200 10
Run Code Online (Sandbox Code Playgroud)
java中是否可以使用lambda表达式
我在运行示例Spring Boot Application时遇到问题.当我尝试运行它时,会发生以下错误:
java.net.BindException: Address already in use: bind
at sun.nio.ch.Net.bind0(Native Method)
at sun.nio.ch.Net.bind(Unknown Source)
at sun.nio.ch.Net.bind(Unknown Source)
at sun.nio.ch.ServerSocketChannelImpl.bind(Unknown Source)
at sun.nio.ch.ServerSocketAdaptor.bind(Unknown Source)
at org.apache.tomcat.util.net.NioEndpoint.bind(NioEndpoint.java:473)
o.apache.catalina.core.StandardService : Failed to initialize connector [Connector[org.apache.coyote.http11.Http11NioProtocol-8080]]
org.apache.catalina.LifecycleException: Failed to initialize component [Connector[org.apache.coyote.http11.Http11NioProtocol-8080]]
at org.apache.catalina.util.LifecycleBase.init(LifecycleBase.java:106)
at org.apache.catalina.core.StandardService.initInternal(StandardService.java:559)
at org.apache.catalina.util.LifecycleBase.init(LifecycleBase.java:102)
at org.apache.catalina.core.StandardServer.initInternal(StandardServer.java:814)
at org.apache.catalina.util.LifecycleBase.init(LifecycleBase.java:102)
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:139)
at org.apache.catalina.startup.Tomcat.start(Tomcat.java:335)
at org.springframework.boot.context.embedded.tomcat.TomcatEmbeddedServletContainer.initialize(TomcatEmbeddedServletContainer.java:57)
at org.springframework.boot.context.embedded.tomcat.TomcatEmbeddedServletContainer.<init>(TomcatEmbeddedServletContainer.java:52)
at
Run Code Online (Sandbox Code Playgroud) 有两个简单的查询(因为它们很简单,我很困惑):
第一个:
select count(*)
from (select e.id as employee_id
from offic o
left join employee e
on o.employee_id = e.id)
where employee_id is null
Run Code Online (Sandbox Code Playgroud)
第二个:
select count(employee_id)
from (select e.id as employee_id
from offic o
left join employee e
on o.employee_id = e.id)
where employee_id is null
Run Code Online (Sandbox Code Playgroud)
这两个查询之间的唯一区别是count(employee_id)和count(*),其余的完全相同,但它们的结果是不同的.
当存在一些空值时,第二个查询返回零.
有什么不对或其他我不知道的事情?
有一个示例 Spring Boot(版本 3.0.3)Web 应用程序如下:
pom.xml部分
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>3.0.3</version>
<relativePath/> <!-- lookup parent from repository -->
</parent>
<groupId>com.example</groupId>
<artifactId>demo</artifactId>
<version>0.0.1-SNAPSHOT</version>
<name>demo</name>
<description>Demo project for Spring Boot</description>
<properties>
<start-class>matin.example.demo.DemoApplication</start-class>
<java.version>17</java.version>
</properties>
<dependencies>
<!--<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-thymeleaf</artifactId>
</dependency>-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
</dependencies>
Run Code Online (Sandbox Code Playgroud)
和
package matin.example.demo;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.context.annotation.ComponentScan;
@SpringBootApplication
public class DemoApplication {
public static void main(String[] args) {
SpringApplication.run(DemoApplication.class, args);
}
}
Run Code Online (Sandbox Code Playgroud)
和
package matin.example.demo.api;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;
@RestController
public class …Run Code Online (Sandbox Code Playgroud) 我想通过java8的lambda表达式重写下面的for-loop语句.
public class Test {
List<ObjectTest> lst;
public int operation(int a, int b) {
return a * b;
}
int max = 0;
ObjectTest suitableObj = null;
for(ObjectTest obj:lst) {
int result = operation(obj.getA(), obj.getB());
if(result > max) {
suitableObj = obj;
max = result;
}
}
}
Run Code Online (Sandbox Code Playgroud)
lambda表达式怎么可能?