小编man*_*nub的帖子

使用Mojo Jaxb2 maven插件创建Java类时生成hashCode()和equals()

我正在使用的代码是使用jaxb2-maven-pluginfrom org.codehaus.mojo从XSD架构生成Java类.我正在寻找一种方法来自动实现equals()hashCode()这些类的方法,但似乎没有一种方式.我知道还有其他JAXB2 Maven插件可以做到这一点(例如http://confluence.highsource.org/display/J2B/Home),但是我想知道你们之前是否遇到过这个问题,如果有办法的话修理它.我正在使用xjc目标生成类.

java jaxb2 maven jaxb2-basics

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

当通过CGLIB进行代理时,方法注释为null

当通过反射查看属于通过CGLIB代理的类的方法的注释时,我遇到了一种奇怪的行为.我们在Spring中使用CGLIB,如果我仅使用注释注释方法,则它可以正常工作(我可以通过getAnnotations()对应Method对象上的方法检索注释).如果我用2个注释来注释方法(无论注释的顺序),getAnnotations()只需返回null.这两个注释都有RetentionPolicy.RUNTIME.

我读过CGLIB存在一些问题,但奇怪的是它只适用于一个注释,当我输入2个注释时它返回null.

有什么建议?

(使用Spring 3.0.5和CGLIB 2.2.2)

添加代码:

第一个注释是:

@Retention(RetentionPolicy.RUNTIME)
@Target(ElementType.METHOD)
public @interface Produces {
    ResultType[] value();
}
Run Code Online (Sandbox Code Playgroud)

第二个注释是

@Retention(RetentionPolicy.RUNTIME)
@Target(ElementType.METHOD)
public @interface JamonMonitored {
    String type() default "";
    String tag() default "";
}
Run Code Online (Sandbox Code Playgroud)

代码块用于检查注释

Collection<Method> candidates = Collections2.filter(Arrays.asList(executorInstance.getClass().getMethods()), new Predicate<Method>() {
    @Override
    public boolean apply(Method input) {
        return input.getAnnotation(Produces.class) != null;
    }
});

if (candidates.isEmpty()) {
    // throws exception
}
Run Code Online (Sandbox Code Playgroud)

如果我用@Produces和@JamonMonitored注释一个方法,getAnnotation(Produces.class)总是如此null.

java reflection spring annotations cglib

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

传递给 @Messages 的 Html 参数在 Play Framework 中被转义

我想将 HTML 文本作为参数传递给 Twirl 模板中的消息,但是当渲染模板时,HTML 会被转义。例如,如果我的messages文件有:

my.message=Click {0} to proceed
Run Code Online (Sandbox Code Playgroud)

我的template.scala.html

<p>@Messages("my.message", Html("<a href="/">here</a>"))</p>
Run Code Online (Sandbox Code Playgroud)

当我在浏览器中打开页面时,该<a href="/"here</a>部分会被转义,因此我没有可点击的链接。有什么办法可以实现这一点吗?

playframework twirl

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

在客户端中使用MapLoader作为Hazelcast分布式地图

我正在评估Hazelcast作为我正在开发的应用程序的分布式数据网格解决方案.Hazelcast是在分布式集群上设置的,我的应用程序使用Spring以这种方式定义Hazelcast客户端:

<hz:client id="hazelcastClient" group-name="dev" group-password="dev-pass">
  <hz:member>localhost:5701</hz:member>
</hz:client>
Run Code Online (Sandbox Code Playgroud)

在我的Hazelcast节点上,在hazelcast.xml文件中我设置了一个地图,其中包含所有需要的配置.假设这个地图被调用myMap.使用Hazelcast webapp进行监控(mancenter)时,我可以正确设置此地图.

我现在要配置地图以在应用程序端注入我的bean.如果我做的事情

<hz:map id="myMap" instance-ref="hazelcastClient" name="myMap" />
Run Code Online (Sandbox Code Playgroud)

我将这个映射注入到包含读取逻辑的bean中,我没有遇到任何问题.

但是,我还编写了一个实现MapLoader接口的类,以便处理缓存中丢失的数据.我现在的问题是我不知道如何将Maploader其与我定义的缓存联系起来.如果我尝试类似的东西

<hz:map id="myMap" instance-ref="hazelcastClient" name="myMap">
  <hz:map-store enabled="true" implementation="myMapLoader"/>
</hz:map>
Run Code Online (Sandbox Code Playgroud)

我发现了一个XML解析错误,因为它似乎是,当hz:map作为一个顶级元素(而不是内部的hz:config,例如),你不能指定内部元素.这让我觉得你需要定义一个hz:config元素.但是,如果您可以hz:config为客户定义元素,那么从文档中就不是很清楚了.对我来说,hz:config如果您希望您的应用程序成为群集的一部分,您似乎需要使用.然而,我不确定我的应用程序应该是群集的一部分在逻辑上是否正确 - 它基本上是数据网格的客户端.

您对如何配置我的应用程序以实现我想要的行为有任何想法吗?

谢谢!

spring hazelcast

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

休息| @Produces和@Consumes:为什么他们都不会被调用相同的MIME类型

JAX-REST的新手(jersey 1.8 impl)

我有一个资源课程"/你好"

package com.lbs.rest;

import javax.ws.rs.Consumes;
import javax.ws.rs.GET;
import javax.ws.rs.Path;
import javax.ws.rs.Produces;
import javax.ws.rs.core.MediaType;

@Path("/hello")
public class Test {


    //-- produces MIME type text/plain
    @GET
    @Produces(MediaType.TEXT_PLAIN)
    public  String thankYouTxt(){
        System.out.println("thankYouTxt");

        return "thankYouTxt\n";
    }

    //-- consumes MIME type text/plain
    @GET
    @Consumes(MediaType.TEXT_PLAIN)
    public String thankYouInputTxt(){
        System.out.println("thankYouInputTxt");
        return "thankYouInputTxt";

    }


    //-- produces MIME type text/html
    @GET
    @Produces(MediaType.TEXT_HTML)
    public  String thankYouHTML(){
        System.out.println("thankYouHTML"); 
        return "thankYouTxtHTML";
    }


    //-- consumes MIME type text/html
    @GET
    @Consumes(MediaType.TEXT_HTML)
    public  void thankYouInputHTML(){
        System.out.println("thankYouInputHTML");
        //return "thankYouInputHTML";
    }



    //-- produces MIME …
Run Code Online (Sandbox Code Playgroud)

java rest jersey

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