小编jla*_*s62的帖子

Maven命令行参数环境变量

当我运行mvn构建时mvn clean install,我注意到System.getenv()有一个带有键MAVEN_CMD_LINE_ARGS和名称的条目是我指定的任何maven阶段(clean install在本例中).但是,我找不到任何关于此的文档.

有谁知道记录在哪里MAVEN_CMD_LINE_ARGS?是否总是设置System.getenv()或可能依赖于操作系统等?

java environment-variables maven-3 maven

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

Spring @Scheduled 任务运行两次

我正在创建一个@Scheduled每 5 秒运行一次的任务。正如其他问题中的问题一样,我的任务运行了两次!

我查看了其他问题,并在此处阅读了适用的文档,但我无法弄清楚问题所在。

我知道当我启动我的 tomcat 服务器时,我的类的两个单独实例@Scheduled正在被实例化。我还知道它们何时参考我的日志文件被实例化。

与此日志行相关的一个:

信息:初始化 Spring 根 WebApplicationContext

另一个带有此日志行:

信息:初始化 Spring FrameworkServlet 'servlet'

这是弹簧配置文件。

<beans xmlns="http://www.springframework.org/schema/beans"
   xmlns:context="http://www.springframework.org/schema/context"
   xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:mvc="http://www.springframework.org/schema/mvc"
   xmlns:security="http://www.springframework.org/schema/security"
   xmlns:task="http://www.springframework.org/schema/task"
   xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.1.xsd
        http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc.xsd
        http://www.springframework.org/schema/security http://www.springframework.org/schema/security/spring-security-3.2.xsd
        http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.0.xsd http://www.springframework.org/schema/task http://www.springframework.org/schema/task/spring-task.xsd">

<context:component-scan base-package="web.controllers"/>
<context:component-scan base-package="services"/>
<context:component-scan base-package="dao"/>
<context:component-scan base-package="scheduled"/>
<context:property-placeholder location="/WEB-INF/application.properties"/>

<mvc:annotation-driven/>
<mvc:default-servlet-handler/>

<task:annotation-driven />
Run Code Online (Sandbox Code Playgroud)

还有我的简单 java 类:

package scheduled;

import org.springframework.scheduling.annotation.Scheduled;
import org.springframework.stereotype.Service;

@Service
public class Notifier {

@Scheduled(fixedDelay = 5000)
public void notifyUsersOfBidItems() {
    try { …
Run Code Online (Sandbox Code Playgroud)

java spring tomcat spring-mvc scheduled-tasks

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

将StringBuilder#AppendFormat转换为java

我正在将C#代码转换为Java,我遇到了这一行(其中i是一个int).

sb.AppendFormat("\\u{0:X04}", i);
Run Code Online (Sandbox Code Playgroud)

从我所看到的,Java没有一个appendFormat方法StringBuilder.

我该如何转换呢?

编辑:

我看到AppendFormat只是append和String.format的组合.我将如何转换\\u{0:X04}为Java的String.format?

c# java

4
推荐指数
1
解决办法
4067
查看次数

将C#加密转换为Java

我的任务是将C#加密方法转换为Java并且卡住了.我知道C#代码可以工作,但是我无法让我的Java代码工作.

这是C#代码:

private const int Nb = 4; // Legal values:  4 = 128-bit blocks

public static void Decrypt(byte[] input, Stream output)
    { 
        var s1 = new MemoryStream(input);
        const int BufferSize = 1024;
        byte[] buffer = new byte[BufferSize];

        input.Read(buffer, 0, 4);
        int pad = buffer[3];

        RijndaelManaged rijndael = new RijndaelManaged();
        rijndael.BlockSize = Nb * 32;
        rijndael.KeySize = buffer[1] * 32;

        rijndael.Mode = CipherMode.ECB;
        rijndael.Padding = PaddingMode.None;

        byte[] key = GetKey(buffer[1]);
        ICryptoTransform decryptor = rijndael.CreateDecryptor(key, GetIV());

        int bytes;
        while ((bytes = …
Run Code Online (Sandbox Code Playgroud)

c# java encryption aes rijndael

4
推荐指数
1
解决办法
287
查看次数

实现类列表中的接口列表

我有以下代码:

List<MassEditionObject> objects = getProjects();
Run Code Online (Sandbox Code Playgroud)

哪个MassEditionObject是由Project类实现的接口.

getProjects()返回List<Project>,看起来应该没问题,因为Project是一个MassEditionObject.

但是,Eclipse给了我这个错误: Type mismatch: cannot convert from List<Project> to List<MassEditionObject>

我理解接口的一般概念以及如何使用它们,我只是不确定为什么这是无效的.

谢谢,对不起,如果这个问题已经发布.我搜索并发现了类似的情况,但没有人回答这个问题.

java interface

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

正确设置RequestBody的MockHttpServletRequestBuilder

我只是尝试使用a测试Spring控制器方法MockHttpServletRequestBuilder.控制器方法的签名如下所示:

 @RequestMapping(value = "/assignTeamsToUsers", method = RequestMethod.POST)
 public @ResponseBody String assignUsersToTeams(Model model, @RequestBody MultiValueMap<String, String> ids).
Run Code Online (Sandbox Code Playgroud)

在我的测试案例中,我有:

MockMvc mockMvc = MockMvcBuilders.webAppContextSetup(applicationContext).build();
MockHttpServletRequestBuilder request = createRequest(uri, method);

//set up request object...Not sure how??
//My current attempt:
     String body = "userIds[]=0&teamIds[]=0";
     request.content(body);
     request.accept(MediaType.ALL);
     request.contentType(MediaType.APPLICATION_FORM_URLENCODED);

ResultActions resultActions = mockMvc.perform(request);
Run Code Online (Sandbox Code Playgroud)

编辑:显示createRequest.method="POST"

private MockHttpServletRequestBuilder createRequest (String uri, String method) {
    MockHttpServletRequestBuilder builder = null;

    if("GET".equalsIgnoreCase(method))
        builder = MockMvcRequestBuilders.get(uri);
    else if("POST".equalsIgnoreCase(method))
        builder = MockMvcRequestBuilders.post(uri);
    else
        Assert.fail("Unsupported method!");

    //We always create requests for …
Run Code Online (Sandbox Code Playgroud)

java spring-mvc

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

Assert语句Assert.assertSame失败

我在junit测试用例中有以下代码.第一个Assert通过,第二个失败.

final int code = webResponse.getResponseCode();
Assert.assertTrue(200 == code);  //passes
Assert.assertSame(200, code);    //fails
Run Code Online (Sandbox Code Playgroud)

为什么第二个失败?webResponse是WebResponse类型,getResponseCode的所有实现都返回一个int.

我在junit测试中运行代码,第二个断言在Intellij和Eclipse IDE中都失败了.此外,在Intellij中,它提供了"点击查看差异"的链接,但是当我点击它时,它显示"内容相同".

java junit assert intellij-idea

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

如何使用 org.json.JSONObject(Object) 忽略字段

我正在使用org.json库。我正在创建一个JSONObject这样的:

Geometry geometry = new Geometry(); 
JSONObject featureObject = new JSONObject(geometry);
Run Code Online (Sandbox Code Playgroud)

如何告诉 JSONObject 忽略Geometry对象的一个或多个字段?我试过,@Transient但没有奏效。

java json

3
推荐指数
2
解决办法
3633
查看次数

如果具有多个插入值的查询失败,那么先前的值会怎样?

我正在使用postgresql,并假设我有以下查询。

insert into table_name values (1, 1), (1, 3);
Run Code Online (Sandbox Code Playgroud)

并说插入值(1,3)失败。是否(1,1)插入值?

根据我所做的测试,不会插入不会引起任何错误的第一个值,但是我一直无法找到任何源来备份该值。我试图谷歌已经提出了不同的主题。

通常,插入多个值时,它是全有还是全无?还是可能仅插入某些值?

谢谢

postgresql

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

防止java中的乱序执行

基本上我有以下两个陈述:

Project project = projectDao.createProject(...);
projectDao.deleteInProgressEntry(...);
Run Code Online (Sandbox Code Playgroud)

我想确保删除inProgress条目之前(在执行下一行之前)完成项目创建.这些语句完全相互独立,所以我担心编译器可能不尊重代码中的顺序.

我已经完成了关于volatile的一些阅读,我尝试将volatile添加到第一行的开头,所以我会这样做volatile Project project.但那不编译.我很难找到我正在寻找的东西而不会迷失在多线程,原子操作等方面.

java volatile execution

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

使用regex和replaceAll

我有这个regex用于验证电话号码.

^\\(?(\\d{2,3})\\)?[-(). ]?(\\d{2,3})[-(). ]?(\\d{4})$
Run Code Online (Sandbox Code Playgroud)

(是的,我知道它并不完美,但我并不在乎).我只是用它来用另一个字符串替换电话号码,比如###删除敏感信息.所以误报很好.

它在我搜索的字符串只是一个电话号码时有效.这有效:

String PHONE_PATTERN = "^\\(?(\\d{2,3})\\)?[-(). ]?(\\d{2,3})[-(). ]?(\\d{4})$";
String phone = "123-123-1234";
System.out.println(s.replaceAll(PHONE_PATTERN, "###")); //prints '###'
Run Code Online (Sandbox Code Playgroud)

但是对于周围的文本,它不起作用:

String PHONE_PATTERN = "^\\(?(\\d{2,3})\\)?[-(). ]?(\\d{2,3})[-(). ]?(\\d{4})$";
String phone = "some other text 123-123-1234";
System.out.println(s.replaceAll(PHONE_PATTERN, "###"));
Run Code Online (Sandbox Code Playgroud)

通过不起作用,我的意思是文本打印不变.

我需要更改我的正则表达式才能使其工作,以便打印第二个示例

some other text ###
Run Code Online (Sandbox Code Playgroud)

java regex

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

Java中按日期范围组织对象

我有一个List对象Stat,每个对象Stat都有一个Date字段。这个列表可能非常大。我想做的是将这些对象有效地组织到日期范围(具体是几周)中。因此,如果两个对象在同一周出现,它们就会进入同一个List. 为简单起见,“周”间隔已经定义,因此您不必担心确定范围。

这是我目前的方法。我有一个LinkedHashMap<Date, List<Stat>>包含按升序排列的所有我需要的日期,并且每个条目都用空的ArrayList. 我正在考虑每个Stat,迭代映射的整个条目集,并跟踪统计数据也大于或等于的最接近的日期。那么就会是这样的map.get(closestDate).add(stat)

似乎应该有更好的方法来做到这一点。也许创建类似 a 的东西findClosestKeyGreaterThanOrEqualTo,这样我就不必每次都迭代整个地图?

有任何想法吗?

java algorithm dictionary date data-structures

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

Play Framework无法识别路径参数

我正在使用Play Framework开发一个Web应用程序.我试图通过动态URI传递变量.我按照这里显示的例子.但是,我收到此错误:

not enough arguments for method showClients: (clientId: Long)play.mvc.Result. Unspecified value parameter clientId.
Run Code Online (Sandbox Code Playgroud)

路线文件:

GET     /clients/{clientId}                   controllers.Application.showClients
Run Code Online (Sandbox Code Playgroud)

控制器代码:

public static Result showClients(Long clientId) {
    Client c = clientFinder.byId(clientId);
    return ok(client.render(c));
}
Run Code Online (Sandbox Code Playgroud)

网址

http://localhost:9000/clients/1
Run Code Online (Sandbox Code Playgroud)

有没有人看到我的代码有问题?谷歌搜索后,我发现了类似的问题,但没有人有完全相同的问题,所以我认为这是一个简单的问题.谢谢您的帮助.

java playframework-2.1

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