小编Lif*_*rld的帖子

如何为java junit测试运行jetty服务器

我正在尝试编写集成测试以在本地启动jetty服务器,然后使用客户端与其余URI进行通信并调用下游的业务逻辑.但是,当我启动我的jetty服务器时,它不会放弃控件,因此我的客户端不会被执行.所以我使用线程在不同的线程中启动我的码头,但是,线程在客户端调用之前完成,它表示连接被拒绝.我可以采取任何方法吗?

@Test
public void testPerform() {

    final JettyServer jettyServer = JettyServer.create();
    jettyServer.buildJettyServer(ServletContextHandler.SESSIONS, "/", 8080, TestResource.class);

    Runnable runnable = new Runnable()
    {
        @Override
        public void run()
        {
            jettyServer.start();
        }
    };

    new Thread(runnable).start();

    final javax.ws.rs.client.Client client = ClientBuilder.newClient();

    final Response response = client.target("http://localhost:8080/test").request().post(Entity.text(""));

    jettyServer.stop();
}
Run Code Online (Sandbox Code Playgroud)

java rest jetty embedded-jetty

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

我们是否需要在 Spring 中同时使用 @Transactional 和 @Modifying 注解?

我仍然试图围绕@Transactional 的工作原理进行思考。

@Transactional对 Service 类的方法进行了@Modifying注释,对 Repository 类中的方法进行了注释。带@Transactional注释的方法是否适用于带注释的 Repository 中的方法@Modifying

我的理解:

@Transactional@Transactional( readOnly = true )没有数据的类的方法上写入数据库,而在使用 时@Transactional,数据写入数据库。

修改查询

  1. 修改方法签名只能返回voidInteger或者int
  2. 更新查询必须是事务性的,标记为 @Transactional
  3. Spring Data 将删除所有未刷新的更改EntityManager,更改为@Modifying(clearAutomatically=false)

正如第二点所说的@Modifying查询必须有@Transactional(readOnly=false),所以我们可以在@Service方法调用@Repository级别或方法级别调用中添加它。如果在@Service级别添加它也适用于@Respository@Service级别方法调用中调用的方法?

例子:

@Service
class AnimalServiceImpl implements AnimalService {

@Autowire
AnimalRepository animalRepository;

@Override
@Transactional
public void persistAnimal() {
....
animalRepository.save();
}

@Override
@Transactional(readOnly …
Run Code Online (Sandbox Code Playgroud)

java spring transactions spring-transactions

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

对于reaseasy代理客户端,您必须至少使用一个但不超过一个http方法注释

我试图在休息时轻松实现一个简单的客户端,但我收到一个错误,说"你必须使用至少一个,但不超过一个http方法注释".在我的服务器实现中,我在我的方法上添加了一个http注释.

    @Path("/")
public class TestResource
{
    @GET
    @Path("/domain/{value}")
    public String get(@PathParam("value") final String value) {
        return "Hello" + value;
    }
}
Run Code Online (Sandbox Code Playgroud)

我调试了它,第一次它没有达到运行时异常,但是,它正在进行第二次调用并失败,不知道为什么以及如何.

我的客户作为junit测试:

@Test
public void testPerformRestEasy() {

    ResteasyClient client = new ResteasyClientBuilder().build();
    ResteasyWebTarget target = client.target("http://localhost:8080/");
    TestResource proxy = target.proxy(TestResource.class);
    String response = proxy.get("user");
    Assert.assertEquals("Hellouser", response);
}
Run Code Online (Sandbox Code Playgroud)

它失败的代码

    private static <T> ClientInvoker createClientInvoker(Class<T> clazz, Method method, ResteasyWebTarget base, ProxyConfig config)
   {
      Set<String> httpMethods = IsHttpMethod.getHttpMethods(method);
      if (httpMethods == null || httpMethods.size() != 1)
      {
         throw new RuntimeException("You must use …
Run Code Online (Sandbox Code Playgroud)

java rest web-services resteasy

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

通过Jenkins上的脚本在节点上永久运行后台进程,让Jenkins成功构建

我正在通过脚本运行后台进程,当Jenkin开始构建时调用此脚本.但是,jenkins构建卡住并且在查看控制台时似乎正在运行该进程并等待它完成.

这个过程永远不会完成,将其视为服务器监听其客户端.每次构建我触发器都会杀死服务器进程并重新启动进程,因此我完全可以处理这种情况.

有什么办法,我可以成功建立詹金斯吗?

jenkins

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

查找匹配的谓词并使用iterable.tryFind从java中的列表返回元素

我有一个列表,我想从列表中找到一个与谓词匹配的元素.我在列表中找到了与第一个谓词匹配的元素,如果第一个谓词没有返回true,则它与第二个谓词匹配.

这是一个例子:

情况1:

result = iterable.tryFind(List, Predicates.or(predicate1, predicate2)).orNull();
Run Code Online (Sandbox Code Playgroud)

这段代码的问题是它找到了匹配任何谓词的第一个元素.即使列表中的第二个元素匹配第一个谓词,在我的情况下应该给予更高的优先级.在这种情况下,我期望结果在这里作为第二个元素,但获得第一个元素(因为它是第一个元素)它匹配其中一个谓词).

案例2:

result = iterable.tryFind(List, Predicates.and(predicate1, predicate2)).orNull();
Run Code Online (Sandbox Code Playgroud)

如果第一个谓词返回false,这显然不起作用.

案例3:

result = iterable.tryFind(List, predicate1).orNull();

if(result == null)
result = iterable.tryFind(List, predicate2).orNull();
Run Code Online (Sandbox Code Playgroud)

这对我有用,但它看起来很乱,并且破坏了函数式编程的目的.

有没有其他方法从列表中获取适用于我的场景的元素?

java guava

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