是否有(兼容的,如果可能的话)确定加载类的绝对路径的方法?
当然,这并不总是可行的(如果你想到动态创建的类),但如果加载的Class在jar中,如何获取这个jar的绝对路径?
我想在eclipse插件(WTP的官方插件)中修复一个错误.我在本地更改了源代码,调试了它 - 一切都很好.
现在我想将此更改传播到我的eclipse安装,但我遇到了问题.似乎有不止一种方法可以达到这个目的,例如:
这个站点推荐了片段,但是Eclipse FAQ忽略了这一点.
但我被困住了,似乎没有办法对我有用.
更新:
我按照建议尝试创建并安装功能补丁.安装完成后,将安装功能补丁,但不会安装包含补丁的插件.插件的先前/现有版本仍然存在且处于活动状态.
我想知道为什么会这样吗?这件事与签名官方插件有关吗?是否有日志可以查看未安装修补插件的原因?
最终更新:
问题是我修补了一个父功能(已经在eclipse安装细节中显示),而不是直接包含该插件的直接功能.在为修补指定正确/"最低级别"功能后,一切都按预期工作.
将现有的jaxb(使用jaxb1.0.1和jaxb 2.0.5)应用程序(在带有jdk5的JBoss 4.3上)迁移到jaxb 2.1.10(随jdk6提供,更新jdk1.6.0_30).
我无法修改客户提供的架构.
我已经从Sun RI删除了jaxws20,jwsdp,jaxp和jaxb jar的所有引用,并且仅使用jdk 6提供的jar.
任何指针?
Caused by: com.sun.istack.SAXException2: Instance of “com.foo.Bar” is substituting “java.lang.Object”, but “com.foo.Bar” is bound to an anonymous type com.foo.Bar@a2e3ss
at com.sun.xml.bind.v2.runtime.XMLSerializer.reportError(XMLSerializer.java:247)
at com.sun.xml.bind.v2.runtime.XMLSerializer.childAsXsiType(XMLSerializer.java:662)
at com.sun.xml.bind.v2.runtime.property.ArrayElementProperty.serializeListBody(ArrayElementProperty.java:165)
at com.sun.xml.bind.v2.runtime.property.ArrayERProperty.serializeBody(ArrayERProperty.java:152)
at com.sun.xml.bind.v2.runtime.ClassBeanInfoImpl.serializeBody(ClassBeanInfoImpl.java:332)
at com.sun.xml.bind.v2.runtime.XMLSerializer.childAsXsiType(XMLSerializer.java:698)
at com.sun.xml.bind.v2.runtime.property.SingleElementNodeProperty.serializeBody(SingleElementNodeProperty.java:152)
at com.sun.xml.bind.v2.runtime.ClassBeanInfoImpl.serializeBody(ClassBeanInfoImpl.java:332)
at com.sun.xml.bind.v2.runtime.XMLSerializer.childAsSoleContent(XMLSerializer.java:592)
at com.sun.xml.bind.v2.runtime.ClassBeanInfoImpl.serializeRoot(ClassBeanInfoImpl.java:320)
at com.sun.xml.bind.v2.runtime.XMLSerializer.childAsRoot(XMLSerializer.java:493)
at com.sun.xml.bind.v2.runtime.MarshallerImpl.write(MarshallerImpl.java:325)
Run Code Online (Sandbox Code Playgroud) 我想在我的JPA应用程序中添加对Java 8 Date/Time API(JSR-310)的支持.
很明显,JPA 2.1  不支持Java 8 Date/Time API.
作为一种解决方法,最常见的建议是使用AttributeConverter.
在我现有的应用程序中,我将实体更改为使用LocalDate/ LocalDateTimetypes作为列映射字段,并为其添加了旧的setter/getter java.util.Date.
我创建了相应的AttributeConverter类.
我的应用程序现在无法使用时,Query.setParameter()用java.util.Date实例(它过渡到新的API工作之前).
似乎JPA期望新的日期类型并且不会动态转换它.
我希望如果将参数传递给已注册setParameter()的类型AttributeConverter,它将由转换器自动转换.但似乎并非如此,至少不使用EclipseLink 2.6.2:
java.lang.IllegalArgumentException: You have attempted to set a value of type class java.util.Date for parameter closeDate with expected type of class java.time.LocalDate from query string SELECT obj FROM [...]
    at org.eclipse.persistence.internal.jpa.QueryImpl.setParameterInternal(QueryImpl.java:937) ~[eclipselink-2.6.2.jar:2.6.2.v20151217-774c696]
    at …Run Code Online (Sandbox Code Playgroud) 如何在Java中创建合成字段?
java中的合成字段只能在运行时创建吗?如果不是:在编译时是否有符合标准的方法(不更改类文件中的某些字节)
解包动态代理以检索下面的原始对象的最佳方法是什么?动态代理已使用创建java.lang.reflect.Proxy.newProxyInstance()
谢谢.
我想介绍Guice使用现有的中型项目.根据我的要求,我需要一个自定义范围(会话太大,而我的项目请求为小).
想象一下,我请求 guice为我提供一个A类实例,它与许多其他类(组合)有直接和间接的依赖关系.
我的自定义提供程序能够提供类的实例,这些类用作所有相关类的构造函数参数.
题:
@Inject在所有相关类的构造函数上放置一个(和我的自定义范围)注释,或者有一种方法,guice 只需要我请求的顶级类上的这些注释,并且所有其他依赖项都通过"询问"我的自定义范围是否为依赖类型的提供者?如果这是真的,这将增加引入Guice的努力,因为我必须调整超过1000个类.感谢guice介绍期间的任何帮助和经验.
我在将JAXB模型树编组到xml文件时遇到了问题.
我使用xjc创建了这些模型类.我无法修改这些xml架构 - 它们是在外部定义的(类似于缺少答案的这个问题).
根据xjc(和其他xml工具),xml架构文件似乎是有效的.我在问是否
以及如何解决此问题.
我得到的例外是:
com.sun.istack.internal.SAXException2: "com.mypackage.A" is substituting "com.mypackage.BaseType", but "com.mypackage.A" is bound to an anonymous type.
    at com.sun.xml.internal.bind.v2.runtime.XMLSerializer.reportError(XMLSerializer.java:237)
    at com.sun.xml.internal.bind.v2.runtime.XMLSerializer.childAsXsiType(XMLSerializer.java:652)
    at com.sun.xml.internal.bind.v2.runtime.property.SingleElementNodeProperty.serializeBody(SingleElementNodeProperty.java:143)
    at com.sun.xml.internal.bind.v2.runtime.ClassBeanInfoImpl.serializeBody(ClassBeanInfoImpl.java:343)
    at com.sun.xml.internal.bind.v2.runtime.XMLSerializer.childAsXsiType(XMLSerializer.java:685)
    at com.sun.xml.internal.bind.v2.runtime.property.ArrayElementNodeProperty.serializeItem(ArrayElementNodeProperty.java:54)
    at com.sun.xml.internal.bind.v2.runtime.property.ArrayElementProperty.serializeListBody(ArrayElementProperty.java:157)
    at com.sun.xml.internal.bind.v2.runtime.property.ArrayERProperty.serializeBody(ArrayERProperty.java:144)
    at com.sun.xml.internal.bind.v2.runtime.ClassBeanInfoImpl.serializeBody(ClassBeanInfoImpl.java:343)
    at com.sun.xml.internal.bind.v2.runtime.ClassBeanInfoImpl.serializeBody(ClassBeanInfoImpl.java:335)
    at com.sun.xml.internal.bind.v2.runtime.XMLSerializer.childAsXsiType(XMLSerializer.java:685)
    at com.sun.xml.internal.bind.v2.runtime.property.SingleElementNodeProperty.serializeBody(SingleElementNodeProperty.java:143)
    at com.sun.xml.internal.bind.v2.runtime.ClassBeanInfoImpl.serializeBody(ClassBeanInfoImpl.java:343)
    at com.sun.xml.internal.bind.v2.runtime.ClassBeanInfoImpl.serializeBody(ClassBeanInfoImpl.java:335)
    at com.sun.xml.internal.bind.v2.runtime.XMLSerializer.childAsXsiType(XMLSerializer.java:685)
    at com.sun.xml.internal.bind.v2.runtime.property.SingleElementNodeProperty.serializeBody(SingleElementNodeProperty.java:143)
    at com.sun.xml.internal.bind.v2.runtime.ClassBeanInfoImpl.serializeBody(ClassBeanInfoImpl.java:343)
    at com.sun.xml.internal.bind.v2.runtime.XMLSerializer.childAsXsiType(XMLSerializer.java:685)
    at com.sun.xml.internal.bind.v2.runtime.property.SingleElementNodeProperty.serializeBody(SingleElementNodeProperty.java:143)
    at com.sun.xml.internal.bind.v2.runtime.ClassBeanInfoImpl.serializeBody(ClassBeanInfoImpl.java:343)
    at com.sun.xml.internal.bind.v2.runtime.XMLSerializer.childAsXsiType(XMLSerializer.java:685)
    at com.sun.xml.internal.bind.v2.runtime.property.SingleElementNodeProperty.serializeBody(SingleElementNodeProperty.java:143)
    at com.sun.xml.internal.bind.v2.runtime.ElementBeanInfoImpl$1.serializeBody(ElementBeanInfoImpl.java:146)
    at …Run Code Online (Sandbox Code Playgroud) sonarqube  错误地报告以下(简化)来源PreparedStatement has no parameters.(鱿鱼:S2695):
public static final String UPDATE_QUERY = "UPDATE TABLE SET COL1=? WHERE PK=?";
private PreparedStatement preparedStatement = null;
public void updateMethod(Date date, Long pk )
{
  if(preparedStatement == null)
  {
    //ConnectionService is not a Connection!
    preparedStatement = ConnectionService.prepareStatement(UPDATE_QUERY);
  }
  //sonarqube reports on the following two lines: 'This "PreparedStatement" has no parameters.'
  preparedStatement.setDate(1, date);
  preparedStatement.setLong(2, pk);
  ResultSet rs = preparedStatement .executeQuery(); 
  //further code left out
}
Run Code Online (Sandbox Code Playgroud)
问题:
这是分析仪的错误还是限制?
有什么我可以做的来隐藏这些"误报"吗?
我有一些短期应用程序,通常(但并非总是)不需要任何 GC(适合堆,epsilon GC 通过不导致 OOM 证明了这一点)。
有趣的是,尽管仍然有大量空闲堆,但G1 仍然很早就开始启动:
[0.868s][info   ][gc,start     ] GC(0) Pause Young (Normal) (G1 Evacuation Pause)
[0.869s][info   ][gc,task      ] GC(0) Using 13 workers of 13 for evacuation
[0.872s][info   ][gc,phases    ] GC(0)   Pre Evacuate Collection Set: 0.0ms
[0.873s][info   ][gc,phases    ] GC(0)   Evacuate Collection Set: 2.8ms
[0.873s][info   ][gc,phases    ] GC(0)   Post Evacuate Collection Set: 0.4ms
[0.873s][info   ][gc,phases    ] GC(0)   Other: 1.0ms
[0.873s][info   ][gc,heap      ] GC(0) Eden regions: 51->0(45)
[0.873s][info   ][gc,heap      ] GC(0) Survivor regions: 0->7(7)
[0.873s][info   ][gc,heap …Run Code Online (Sandbox Code Playgroud) java ×10
reflection ×3
jaxb ×2
xml ×2
xsd ×2
classloader ×1
eclipse ×1
eclipselink ×1
g1gc ×1
guice ×1
hibernate ×1
jar ×1
jpa ×1
jpa-2.1 ×1
jvm ×1
performance ×1
sonarqube ×1