我有运行机器和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,但为什么呢?我应该怎么做才能避免它并修复它?
在我的Angular 10
应用程序中,我想在新的浏览器选项卡中打开组件。我想在不引导整个应用程序并创建另一个应用程序实例的情况下执行此操作。
我发现文章在新的浏览器选项卡中动态打开 Angular 组件,无需再次引导整个应用程序,它准确地描述了我所需要的内容。
但存在一些问题——它无法正常工作。在 Chrome 隐身模式下它工作正常,但在 Chrome 正常模式或 Firefox 中则无法工作。它会打开新选项卡几毫秒并自行关闭。在其他计算机上,它在 Firefox 中运行良好,但在 Chrome 中根本不起作用。
我的问题是否可以通过某种解决方案或黑客来实现这一目标,并允许它在任何或大多数浏览器中工作?我不想创建多个实例,因为很难进行通信并保持应用程序的一种状态。
我正在使用TransmissionBT torrent客户端(http://www.transmissionbt.com/)。
是否可以对代码进行简单修改,以便能够以顺序模式(从文件开头)下载文件。这样就可以播放视频文件,而无需等待下载完整个文件。我找到了解决方案-https://trac.transmissionbt.com/wiki/Can%20I%20sequence%20the%20files%20I%20download,但这是7年前的版本,在当前版本中,链接中未提及功能。
我从API长的json接收,例如:
{
"field1": "val1",
"field2": "val2",
...
"SOME_FIELD": " ABC ",
...
"fieldx": "valx"
}
Run Code Online (Sandbox Code Playgroud)
我想和Gson反序列化。一切正常,但字段的“ SOME_FIELD”值始终带有烦人的空格。我想trim()此字段值(无法更改API)。我知道我可以使用JsonDeserializer,但随后我必须手动读取所有字段。反序列化时是否只能编辑一个内部字段,而其余部分使用自动反序列化?
我在我的应用程序中使用谷歌地图,几乎没有标记。每隔几秒钟我就会从 API 标记位置加载。每个标记都设置了标题和片段。在代码片段中,我想显示加载数据的时间。
问题是,当用户单击其中一个标记并且InfoWindow
标题和代码段可见时,然后我更改了代码段和内容,但可见InfoWindow
内容未更改 - 用户必须单击地图以隐藏InfoWindow
并再次单击标记 - 那么内容是正确的。
InfoWindow
标题或片段更改后是否可以刷新内容?
我正在创建 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 查询,因为我的类比上面的复杂得多,我想将每个字段添加到查询中。
在延迟加载模块中创建第二个路由器插座时,我遇到了问题。
我从这个例子开始,其中辅助路由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
如何在Android应用程序中实现像Twitter启动画面动画(来自iOS Twitter版本)的效果?有图书馆https://github.com/callumboddy/CBZSplashView但它仅适用于iOS.
我正在使用Caldroid库https://github.com/roomorama/Caldroid.我想在今天之前禁用所有日期.我怎样才能做到这一点?有方法setDisableDates,但它需要传递作为参数的日期列表来禁用.
我正在使用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)
但我不能@CachePut
在saveMyObject
方法上使用两个注释.
我该怎么办?
我正在使用Spring
和Hibernate
作为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
可以有ADMIN
和MEMBER
角色并且user2
只有MEMBER …
java ×4
android ×3
spring ×3
angular ×2
bittorrent ×1
browser-tab ×1
caldroid ×1
google-maps ×1
gson ×1
hibernate ×1
ioexception ×1
jpa ×1
json ×1
spring-boot ×1
spring-cache ×1
torrent ×1
transmission ×1
twitter ×1