我有发出AJAX调用的客户端.这些调用引用服务器端受Spring Security保护的URL.如果用户的会话超时,我在灯箱中有一个登录表单弹出窗口.用户成功登录后,我希望客户端重新执行AJAX调用.
以下是进行AJAX调用的客户端代码示例:
function handleSearchClick(evt) {
var setupOptions = {
success: loadSearch,
type: "POST",
dataType: "json",
url: "../search.ajax",
error: handleError, // how can I pass callback info i.e. I want to be able to execute $("#searchForm").ajaxSubmit(setupOptions); from handleError?
timeout: 50000
};
$("#searchForm").ajaxSubmit(setupOptions);
}
Run Code Online (Sandbox Code Playgroud)
当身份验证失败时,服务器返回401,导致客户端调用handleError.是否可以将回调函数传递给handleError?我希望回调重新执行
$("#searchForm").ajaxSubmit(setupOptions);
Run Code Online (Sandbox Code Playgroud)
我已经看到了这个问题的解决方案,其中服务器在会话超时的AJAX调用上返回成功响应.然后,success函数在响应中查找某些内容以了解会话超时.然后客户端在那里存储回调函数.我更喜欢在错误功能中处理这个问题.
我有一个需要执行LDAP查询的Spring启动应用程序.我试图从Spring启动文档中获取以下建议:
"许多Spring配置示例已在Internet上发布,使用XML配置.如果可能,请尽量使用等效的基于Java的配置."
在Spring XML配置文件中,我会使用:
<ldap:context-source
url="ldap://localhost:389"
base="cn=Users,dc=test,dc=local"
username="cn=testUser"
password="testPass" />
<ldap:ldap-template id="ldapTemplate" />
<bean id="personRepo" class="com.llpf.ldap.PersonRepoImpl">
<property name="ldapTemplate" ref="ldapTemplate" />
</bean>
Run Code Online (Sandbox Code Playgroud)
我如何使用基于Java的配置来配置它?我需要能够在没有代码重建的情况下更改ldap:context-source的URL,base,username和password属性.
我有一个带有列表的实体:
@Entity
public class Order {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;
@OneToMany(cascade=CascadeType.ALL, orphanRemoval=true)
@JoinColumn(name="orderId", nullable=false)
private List<Item> items;
}
@Entity
@Data
public class Item {
@Id
@GeneratedValue(strategy=GenerationType.IDENTITY)
@EqualsAndHashCode.Exclude
private Long id;
private String description;
}
Run Code Online (Sandbox Code Playgroud)
我有一项服务,可以检查两个订单是否具有相同的商品,如果是,则返回商品;否则返回空值:
public List<Item> getItemsIfSame(Order order1, Order order2) {
if (order1.getItems() != null && order1.getItems().equals(order2.getItems())) {
return order1.getItems();
}
return null;
}
Run Code Online (Sandbox Code Playgroud)
我有一个单元测试,其中 order1 和 order2 具有相同的项目。正如预期的那样,项目列表从该getItemsIfSame
方法返回。
但是当我运行我的应用程序并且它传递了两个具有相同项目的订单时,返回 null 。经过调试和研究,我发现该Order
方法返回的实际类型getItems
是 org.hibernate.collection.internal.PersistentBag
. 它的文档指出:
Bag 不尊重集合 API 并进行 JVM …
我有一个包含许多列的kendo UI网格.可以通过水平滚动查看溢出的列.但是,如果你
1)滚动到最初未显示的列
2)对该列进行过滤,使得没有行符合过滤条件
网格将不再允许水平滚动.已应用过滤器的列无法清除.
如何在过滤后显示水平滚动条?
这是一个jsfiddle,你可以看到问题
这是代码:
var dataItem = {};
var columns = [];
for (var i = 0; i < 20; i++) {
dataItem['col' + i] = i;
columns.push( {
field: 'col' + i,
width: 80,
filterable: true,
type: 'number'
} );
}
$("#grid").kendoGrid({
scrollable:true,
columns: columns,
filterable: true,
dataSource: [dataItem]
});
Run Code Online (Sandbox Code Playgroud)
例如,转到第18列并过滤等于20以查看问题.
我有一个Spring Boot Batch应用程序,我正在编写集成测试.但是,我在运行测试时遇到以下关于EntityManagerFactoryBuilder bean的错误:
org.springframework.beans.factory.UnsatisfiedDependencyException:
Error creating bean with name 'entityManagerFactory' defined in com.example.DatabaseConfig: Unsatisfied dependency expressed through constructor argument with index 0 of type [org.springframework.boot.orm.jpa.EntityManagerFactoryBuilder]: :
No qualifying bean of type [org.springframework.boot.orm.jpa.EntityManagerFactoryBuilder] found for dependency: expected at least 1 bean which qualifies as autowire candidate for this dependency.
Dependency annotations: {}; nested exception is org.springframework.beans.factory.NoSuchBeanDefinitionException:
No qualifying bean of type [org.springframework.boot.orm.jpa.EntityManagerFactoryBuilder] found for dependency: expected at least 1 bean which qualifies as autowire candidate for this dependency. Dependency annotations: …
Run Code Online (Sandbox Code Playgroud) 我有一个名为search.jsp的页面.当用户选择一个记录并按下一个编辑按钮时,我想打开一个新页面(在同一个窗口中),其中包含记录数据(存储在json对象中并传递给新页面).如何使用Javascript(或jQuery)打开新页面并传递JSON数据?
我有一个返回初始化数据的方法.它首先检查sessionStorage.如果它没有在那里找到数据,它会调用服务器来获取数据.这是代码:
function getInitializationData() {
// Check local storage (cache) prior to making a server call.
// Assume HTML 5 browser because this is an Intranet application.
if (!sessionStorage.getItem("initialData")) {
// The browser doesn't have the initialization data,
// so the client will call the server to get the data.
// Note: the initialization data is complex but
// HTML 5 storage only stores strings. Thus, the
// code has to convert into a string prior to storage.
$.ajax({ …
Run Code Online (Sandbox Code Playgroud) 我有一个Java Set(特别是HashSet).假设它的大小为10k.如何将其分为5套,每套尺寸为2k?
我有一个Spring存储库,如下所示:
import org.springframework.data.repository.Repository;
import org.springframework.stereotype.Component;
import com.test.domain.My;
@Component
public interface MyRepository extends Repository<My, String> {
My findOne(String code);
My findByName(String name);
}
Run Code Online (Sandbox Code Playgroud)
实体类为:
import javax.persistence.ColumnResult;
import javax.persistence.ConstructorResult;
import javax.persistence.Entity;
import javax.persistence.Id;
import javax.persistence.SqlResultSetMapping;
import javax.persistence.Table;
import com.fasterxml.jackson.annotation.JsonCreator;
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
import com.fasterxml.jackson.annotation.JsonProperty;
@JsonIgnoreProperties(ignoreUnknown=true)
@Entity
@Table(name="vMy", schema="test")
@SqlResultSetMapping(
name="something",
classes = {
@ConstructorResult(targetClass = My.class,
columns={
@ColumnResult(name = "myCode", type = String.class),
@ColumnResult(name = "myShortName", type = String.class)
}
)
}
)
public class My {
@Id
@Column(name = "myCode")
private final …
Run Code Online (Sandbox Code Playgroud) 我在一台 32GB 的机器上运行着 23 个 Java 进程。没有进程指定 JVM 内存参数,例如 Xmx。java -XX:+PrintFlagsFinal -version | grep MaxHeapSize
报告最大默认堆大小如预期为 8GB。
每个进程都运行嵌入式 Tomcat(Spring Boot 应用程序(大多数版本为 2.3.4)),除了一个是运行三个 WAR 的独立 tomcat 9 实例。这些应用程序的使用率较低(通常是一名用户每天使用 10 分钟)。它们不是内存或 CPU 密集型的。其中之一是 Spring Boot admin,另一个是 Spring Cloud 的 Eureka 服务注册表。对于这两个,我只有一个主要方法来简单地引导 Spring Boot 应用程序。
然而,RES
如顶部所示,每个进程的内存都在逐渐增加。例如,Spring Boot 服务注册表在过去 12 小时内从 1.1GB 增加到 1.5GB。所有进程都显示出类似的小幅增长,RES
但在同一 12 小时内,总的增长使可用内存减少了 2 GB。过去 12 小时(依此类推)也是如此,直到当前可用内存仅为 4.7GB。
我担心的是,我会继续看到这种趋势(即使没有使用应用程序)。内存永远不会从应用程序中释放,因此可用内存总量持续减少。这是正常的吗,因为也许每个 JVM 都会看到操作系统中的内存仍然可用并且有 8GB 堆空间可供使用?一旦达到操作系统可用内存阈值,JVM 是否会在某个时刻停止占用内存?或者它会一直持续到所有可用内存都被用完为止?
更新
大多数应用程序使用的堆小于 200MB,但堆大小为 1.5 - 2.8GB。堆最大为 8GB。
jquery ×3
spring-boot ×3
ajax ×2
hibernate ×2
java ×2
javascript ×2
spring ×2
closures ×1
equals ×1
filter ×1
grid ×1
hashset ×1
jpa ×1
jpa-2.1 ×1
json ×1
jvm ×1
kendo-ui ×1
linux ×1
list ×1
memory ×1
set ×1
spring-batch ×1
spring-ldap ×1
spring-test ×1
sync ×1