小编use*_*048的帖子

Spring Boot - 许多无效请求和Socket接受失败java.io.IOException:打开的文件太多

我有运行机器和Spring (Spring Boot 1.5.2.RELEASE)应用程序.最近我在我的日志文件中收到了很多警告:

.w.s.m.s.DefaultHandlerExceptionResolver : Failed to read HTTP message: org.springframework.http.converter.HttpMessageNotReadableException: Could not read document: null; nested exception is java.net.SocketTimeoutException
Run Code Online (Sandbox Code Playgroud)

我已经检查过tcpdump并且很多请求没有正文(空/ null)或者身体不正确,例如\00\00\00\00\00\00\00speed":"23.3","user_id":106312}

最大的问题是,经过一段时间后,我开始在我的应用程序中收到异常:

org.apache.tomcat.util.net.NioEndpoint   : Socket accept failed

java.io.IOException: Too many open files
    at sun.nio.ch.ServerSocketChannelImpl.accept0(Native Method)
    at sun.nio.ch.ServerSocketChannelImpl.accept(ServerSocketChannelImpl.java:241)
    at org.apache.tomcat.util.net.NioEndpoint$Acceptor.run(NioEndpoint.java:443)
    at java.lang.Thread.run(Thread.java:745)
Run Code Online (Sandbox Code Playgroud)

ulimit -n说开放文件的限制是设置为65536所以我认为它足够大.

我假设接收大量无效请求会导致IOException,但为什么呢?我应该怎么做才能避免它并修复它?

java spring ioexception spring-boot

9
推荐指数
1
解决办法
851
查看次数

新选项卡中的 Angular 打开组件无需引导整个应用程序

在我的Angular 10应用程序中,我想在新的浏览器选项卡中打开组件。我想在不引导整个应用程序并创建另一个应用程序实例的情况下执行此操作。

我发现文章在新的浏览器选项卡中动态打开 Angular 组件,无需再次引导整个应用程序,它准确地描述了我所需要的内容。

但存在一些问题——它无法正常工作。在 Chrome 隐身模式下它工作正常,但在 Chrome 正常模式或 Firefox 中则无法工作。它会打开新选项卡几毫秒并自行关闭。在其他计算机上,它在 Firefox 中运行良好,但在 Chrome 中根本不起作用。

我的问题是否可以通过某种解决方案或黑客来实现这一目标,并允许它在任何或大多数浏览器中工作?我不想创建多个实例,因为很难进行通信并保持应用程序的一种状态。

browser-tab angular

6
推荐指数
1
解决办法
4231
查看次数

传输torrent客户端顺序下载

我正在使用TransmissionBT torrent客户端(http://www.transmissionbt.com/)。

是否可以对代码进行简单修改,以便能够以顺序模式(从文件开头)下载文件。这样就可以播放视频文件,而无需等待下载完整个文件。我找到了解决方案-https://trac.transmissionbt.com/wiki/Can%20I%20sequence%20the%20files%20I%20download,但这是7年前的版本,在当前版本中,链接中未提及功能。

bittorrent transmission torrent transmission-daemon

5
推荐指数
2
解决办法
5027
查看次数

Gson自定义反序列化,但只有一个领域

我从API长的json接收,例如:

{
  "field1": "val1",
  "field2": "val2",
  ...
  "SOME_FIELD": "   ABC   ",
  ...
  "fieldx": "valx"
}
Run Code Online (Sandbox Code Playgroud)

我想和Gson反序列化。一切正常,但字段的“ SOME_FIELD”值始终带有烦人的空格。我想trim()此字段值(无法更改API)。我知道我可以使用JsonDeserializer,但随后我必须手动读取所有字段。反序列化时是否只能编辑一个内部字段,而其余部分使用自动反序列化?

java json gson deserialization json-deserialization

5
推荐指数
1
解决办法
983
查看次数

InfoWindow 中的 Android 谷歌地图片段自动更新

我在我的应用程序中使用谷歌地图,几乎没有标记。每隔几秒钟我就会从 API 标记位置加载。每个标记都设置了标题和片段。在代码片段中,我想显示加载数据的时间。

问题是,当用户单击其中一个标记并且InfoWindow标题和代码段可见时,然后我更改了代码段和内容,但可见InfoWindow内容未更改 - 用户必须单击地图以隐藏InfoWindow并再次单击标记 - 那么内容是正确的。

InfoWindow标题或片段更改后是否可以刷新内容?

android google-maps

5
推荐指数
1
解决办法
2507
查看次数

JpaRepository 方法名称与 DISTINCT ON

我正在创建 Spring 应用程序,并且正在使用 JpaRepository 来简化数据库查询。

我在使用 DISTINCT ON 的 JpaRepository 约定创建方法名称时遇到问题。这是我的 SQL 查询:

SELECT DISTINCT ON (s.device_id)
  s.status_id,
  s.error,
  s.receive_time,
  s.device_id
FROM statuses s
ORDER BY s.device_id, s.receive_time DESC
Run Code Online (Sandbox Code Playgroud)

我试过这样的名字,但它不起作用:

List<Status> findDistinctByDeviceId_OrderByReceiveTimeDesc();
Run Code Online (Sandbox Code Playgroud)

这是我的课程(简化版):

public class Status {
    private long status_id;
    private String error;
    private Date receive_time;
    private Device device_id;
}

public class Device {
    private long device_id;
    private String name;
}
Run Code Online (Sandbox Code Playgroud)

甚至可以在方法名称中使用 DISTINCT ON 吗?我不想使用 SQL 查询,因为我的类比上面的复杂得多,我想将每个字段添加到查询中。

spring-data-jpa

5
推荐指数
1
解决办法
2万
查看次数

Angular 10 辅助路由器插座放置在延迟加载模块中时不起作用

延迟加载模块中创建第二个路由器插座时,我遇到了问题。

我从这个例子开始,其中辅助路由https://stackblitz.com/edit/angular-nested-auxiliary-routes-irixxy正常工作。

我的应用程序有点复杂,我使用延迟加载模块。在新模块中,我想使用第二个路由器插座来动态显示组件。但是我发现当辅助路由被添加到应用模块之外的另一个模块时存在问题。

为了检查问题是否出在我的应用程序的路由中,我创建了一个示例https://stackblitz.com/edit/angular-nested-auxiliary-routes-bpuswu,它类似于基本示例,但添加了延迟加载模块,其中路由(主要和次要)已配置。问题是与辅助出口路径的链接无法正常工作,从而导致错误Cannot match any routes. URL Segment: 'level-0'。创建的无效链接就像[...]/level-0/(level-1//outlet1:aux-1). 同样的问题出现在我的应用程序项目中。

任何人都有类似的问题并知道如何解决它?我的日常有什么问题吗?还是路由器有问题?

angular-routing router-outlet angular angular-router angular-auxiliary-routes

5
推荐指数
1
解决办法
302
查看次数

Android中类似Twitter的启动画面动画

如何在Android应用程序中实现像Twitter启动画面动画(来自iOS Twitter版本)的效果?有图书馆https://github.com/callumboddy/CBZSplashView但它仅适用于iOS.

twitter android android-animation

3
推荐指数
1
解决办法
7645
查看次数

如何在Caldroid日历中禁用所有日子直到今天?

我正在使用Caldroid库https://github.com/roomorama/Caldroid.我想在今天之前禁用所有日期.我怎样才能做到这一点?有方法setDisableDates,但它需要传递作为参数的日期列表来禁用.

android caldroid

2
推荐指数
1
解决办法
1157
查看次数

Spring @CachePut用两个键放置相同的值

我正在使用Spring内置缓存使用@Cacheable@CachePut注释.

我的@Service中有两个方法,一个用于保存数据库中的值,另一个用于从数据库中获取值.他们都使用缓存.

@CachePut(key = "#code")
MyObject saveMyObject(MyObject o, String code) {
    return dao.save(o);
}

@Cacheable(key = "#code")
MyObject getMyObject(String code) {
    return dao.getMyObject(code);
}
Run Code Online (Sandbox Code Playgroud)

在保存对象的同时,我想把它放在另一个缓存中,例如

@CachePut(key = "'TMP_'.concat(#code)")
Run Code Online (Sandbox Code Playgroud)

但我不能@CachePutsaveMyObject方法上使用两个注释.

我该怎么办?

java spring spring-cache

2
推荐指数
1
解决办法
2162
查看次数

JpaRepository 在角色列表中查找具有角色的用户

我正在使用SpringHibernate作为JpaRepository数据库存储库。

我有两个用于用户存储的类:

@Entity
public class User {
    @Id
    private Long id;

    private String username;

    private String password;

    @OneToMany(mappedBy = "user", cascade = CascadeType.ALL)
    private List<UserRole> roles;
}

@Entity
public class UserRole {
    @Id
    private Long id;

    @ManyToOne
    @JoinColumn(name = "user_id")
    private User user;

    @Enumerated(EnumType.STRING)
    private Role role;
}

public enum Role {
    ADMIN,
    MEMBER;
    /* some others in the future */
}
Run Code Online (Sandbox Code Playgroud)

正如您所看到的,User可以分配多个角色。所以user1可以有ADMINMEMBER角色并且user2只有MEMBER …

java spring hibernate jpa spring-data-jpa

2
推荐指数
1
解决办法
1万
查看次数