我正在使用JDK 1.6.0_26中的VisualVM来分析在Tomcat下运行的Java webapp,但VisualVM经常告诉我它没有足够的内存来拍摄快照,并且使用-Xmx开关为Netbeans提供更多内存.问题是,我在Netbeans之外运行VisualVM,那么如何向jvisualvm.exe提供JVM参数?
我最近意识到正则表达式拒绝服务攻击,并决定在我的代码库中找到所谓的"邪恶"正则表达式模式 - 或者至少在用户输入上使用它们.上面的OWASP链接和维基百科提供的示例很有帮助,但他们并没有很好地用简单的术语解释问题.
来自维基百科的邪恶正则表达式的描述:
通过示例,再次来自维基百科:
(a+)+
([a-zA-Z]+)*
(a|aa)+
(a|a?)+
(.*a){x}
对于x> 10这是一个没有更简单解释的问题吗?我正在寻找能够在编写正则表达式时更容易避免这个问题,或者在现有代码库中找到它们的东西.
我的项目中有成千上万的单元测试,我想从命令行中选择一个或几个单元测试.这样做的命令是什么?
我已经在我的项目中编写了一些JUnit测试,用于在setup方法中填充数据.现在我已将maven添加到我的项目中,并且我希望从maven执行所有测试用例,即使用mvn test.现在的问题是我的数据库在每个测试类运行后都没有被清除.我需要在每个类的测试用例运行后清除HSQLDB.
我有一个Player对象列表从控制器传递到JSP,我想在同一页面上以几种不同的方式显示它们:
我可以在模型中放置单独的排序副本,但处理显示相同列表的不同方式似乎更像是视图的责任,所以我想避免将逻辑放在控制器中,如果可以的话.我已经有几个实现Comparator的类来帮助实际排序.
在JSP中执行此操作的最佳方法是什么?
我可以在将列表传递给不同的forEach
标签之前对其进行排序吗?
我正在尝试从DynamoDB表中检索匹配a的所有项目FilterExpression
,虽然扫描了所有项目并且一半匹配,但不会返回预期的项目.
我在Node.js 6.10上运行的AWS Lambda函数中有以下内容:
var AWS = require("aws-sdk"),
documentClient = new AWS.DynamoDB.DocumentClient();
function fetchQuotes(category) {
let params = {
"TableName": "quotient-quotes",
"FilterExpression": "category = :cat",
"ExpressionAttributeValues": {":cat": {"S": category}}
};
console.log(`params=${JSON.stringify(params)}`);
documentClient.scan(params, function(err, data) {
if (err) {
console.error(JSON.stringify(err));
} else {
console.log(JSON.stringify(data));
}
});
}
Run Code Online (Sandbox Code Playgroud)
表中有10个项目,其中一个是:
{
"category": "ChuckNorris",
"quote": "Chuck Norris does not sleep. He waits.",
"uuid": "844a0af7-71e9-41b0-9ca7-d090bb71fdb8"
}
Run Code Online (Sandbox Code Playgroud)
使用"ChuckNorris"类别进行测试时,日志显示:
params={"TableName":"quotient-quotes","FilterExpression":"category = :cat","ExpressionAttributeValues":{":cat":{"S":"ChuckNorris"}}}
{"Items":[],"Count":0,"ScannedCount":10}
Run Code Online (Sandbox Code Playgroud)
scan
当我只指定时,该调用返回所有10个项目TableName
:
params={"TableName":"quotient-quotes"}
{"Items":[<snip>,{"category":"ChuckNorris","uuid":"844a0af7-71e9-41b0-9ca7-d090bb71fdb8","CamelCase":"thevalue","quote":"Chuck Norris does not sleep. He waits."},<snip>],"Count":10,"ScannedCount":10}
Run Code Online (Sandbox Code Playgroud) 任何人都可以解释JSP自定义标记库和JSP 2标记文件背后的想法吗?
他们只是以不同的方式做同样的事情吗?
他们如何比较?它们的优点和缺点是什么,哪个更好?
我有一个基于Spring Data REST 示例项目的工作项目,我正在尝试使用基于此Wiki页面的Jackson模块进行自定义序列化.
这是我的杰克逊模块:
public class CustomModule extends SimpleModule {
public static Logger logger = LoggerFactory.getLogger(CustomModule.class);
public CustomModule() {
super("CustomModule", new Version(1, 0, 0, null));
}
@Override
public void setupModule(SetupContext context) {
logger.debug("CustomModule.setupModule");
SimpleSerializers simpleSerializers = new SimpleSerializers();
simpleSerializers.addSerializer(new CustomDateTimeSerializer());
context.addSerializers(simpleSerializers);
}
}
Run Code Online (Sandbox Code Playgroud)
该wiki页面说:
在ApplicationContext范围内声明的任何Module bean都将被导出器选中并在其ObjectMapper中注册.
我还是Spring的新手,所以我可能只是把我的模块bean定义放在错误的地方; 目前它在src/main/resources/META-INF/spring-data-rest/shared.xml
,从repositories-export.xml
以下导入:
<bean id="customModule" class="org.hierax.wpa.schema.mapping.CustomModule" />
Run Code Online (Sandbox Code Playgroud)
我没有看到日志语句setupModule
,但我确实看到同一个包中其他类的日志输出.
我正在使用Spring Data REST 1.0.0.RC2.
我正在使用Eclipse Helios,并注意到当我将焦点移离它时,包浏览器中的树视图现在会自动隐藏展开/折叠树图标.我个人觉得这种行为有点分散注意力,并且想知道是否有人知道如何禁用它?
我一直在想办法改进对数据库结构的管理变更.我有一个构建服务器来创建夜间构建,因此我认为我们可以在测试环境中以某种方式创建数据库转储,备份和脚本,作为构建过程的一部分.然后,当将更新部署到客户端时,我们可以使用DBDiff之类的工具来创建数据库更新脚本.
有人在做类似的事吗?这甚至是个好主意吗?也许一些很好的提示在构建服务器上使用什么来创建这些转储?
我在应用程序中使用数据库时缺乏经验,所以我需要一些指导.
我有一个带有几个原始字段的Java对象,以及对Strings和ArrayList对象的几个引用.原语和字符串很好地映射到可用的SQLite字段,但我不确定如何持久保存ArrayLists.
我正在娱乐两个想法,其中一个是序列化ArrayLists并将它们存储在Text字段中,另一个是有一个指向arity 1的表的列,我可以在其中存储单个字符串,但是我我不确定如何在android中实现这一点.我对不同的方法持开放态度,但我不知道如何使用SQLite在java中实现后者,因此解决方案很可爱.谢谢.
我创建了一个自定义AuthenticationProvider
来执行自定义安全检查.我还创建了继承的自定义异常,AccountStatusException
以通知用户状态问题,例如用户在特定时间段内未验证其帐户的UserDetails
情况.我也是自定义实现.
这是我执行的安全检查的代码.省略了与案例无关的代码.
public class SsoAuthenticationProvider implements AuthenticationProvider {
public Authentication authenticate(Authentication authentication) throws AuthenticationException {
String username = (String) authentication.getPrincipal();
User user = null;
if (username != null) {
user = getUserRepository().findByUserName(username);
if (user != null) {
if (user.getEnabled() != 0) {
if ((user.getUserDetail().getConfirmed() != 0)
|| ((new Date().getTime() - user.getUserDetail().getRequestDate().getTime()) / (1000 * 60 * 60 * 24)) <= getUnconfirmedDays()) {
if (getPasswordEncoder().isPasswordValid(user.getPassword(),
(String) authentication.getCredentials(), user)) {
user.authenticated = true;
user.getAuthorities();
}
} …
Run Code Online (Sandbox Code Playgroud) 为什么这个sql查询只显示结果,如果他们在users_warnings中只有一行?
SELECT
u.id,
uw.warning
FROM
users u
INNER JOIN users_warnings uw ON (
u.id = uw.uID
)
LIMIT 21
Run Code Online (Sandbox Code Playgroud)
我希望向所有用户显示,但也会抓取users_warnings中的"警告"列,如果有的话.