我正在尝试在64位Debian Mint机器上运行32位热点JVM.乍一看它一切正常,直到你尝试使用Swing运行一些东西:
java.lang.UnsatisfiedLinkError: /opt/javadev/jdk1.7.0_03_32b/jre/lib/i386/xawt/libmawt.so:
libXext.so.6: cannot open shared object file: No such file or directory
Run Code Online (Sandbox Code Playgroud)
将其添加到库路径:export LD_LIBRARY_PATH=/usr/lib/x86_64-linux-gnu.
但后来它给出了这个错误:
java.lang.UnsatisfiedLinkError: /opt/javadev/jdk1.7.0_03_32b/jre/lib/i386/xawt/libmawt.so:
libXext.so.6: wrong ELF class: ELFCLASS64
Run Code Online (Sandbox Code Playgroud)
知道还有什么必须在这里完成吗?
标题显然表明它:我无法使二级缓存适用于JPA2/Hibernate 3.6.3.
我一直在尝试很多黑客工作.但我只是成功地使查询缓存工作.虽然Hibernate创建了缓存(实例的名称),但它们被忽略了.即使未命中也未注册.也许这是版本不兼容.我尝试了其他一些没有结果的人.而且我不再能够完成所有排列的任务了.:-P
我在这里问这个问题,因为有些人似乎让它工作(我也尝试过它的例子).也许他们可以发现我正在犯的明显错误.
在此先感谢任何帮助我的人!:-)
persistence.xml中
<persistence xmlns="http://java.sun.com/xml/ns/persistence"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/persistence http://java.sun.com/xml/ns/persistence/persistence_2_0.xsd"
version="2.0">
<persistence-unit name="foo" transaction-type="RESOURCE_LOCAL">
<shared-cache-mode>ENABLE_SELECTIVE</shared-cache-mode>
<properties>
<property name="javax.persistence.jdbc.driver" value="org.apache.derby.jdbc.EmbeddedDriver"/>
<property name="javax.persistence.jdbc.url" value="jdbc:derby:/opt/db/foo;create=true"/>
<property name="javax.persistence.jdbc.user" value="foo"/>
<property name="javax.persistence.jdbc.password" value="bar"/>
<property name="hibernate.dialect" value="org.hibernate.dialect.DerbyDialect"/>
<property name="hibernate.hbm2ddl.auto" value="create"/>
<property name="hibernate.cache.region.factory_class" value="net.sf.ehcache.hibernate.SingletonEhCacheRegionFactory"/>
<property name="hibernate.cache.use_second_level_cache" value="true"/>
<property name="hibernate.cache.use_query_cache" value="true"/>
</properties>
</persistence-unit>
Run Code Online (Sandbox Code Playgroud)
的pom.xml
<dependency>
<groupId>org.hibernate</groupId>
<artifactId>hibernate-entitymanager</artifactId>
<version>3.6.3.Final</version>
</dependency>
<dependency>
<groupId>org.hibernate.javax.persistence</groupId>
<artifactId>hibernate-jpa-2.0-api</artifactId>
<version>1.0.0.Final</version>
</dependency>
<dependency>
<groupId>net.sf.ehcache</groupId>
<artifactId>ehcache-core</artifactId>
<version>2.4.2</version>
Run Code Online (Sandbox Code Playgroud)
JMX设置
这样我就可以检查缓存的用法.创建缓存(每个实体一个),两个查询缓存也在那里.后者填补速度非常快.但是没有一个缓存显示任何未命中或命中.甚至不是查询缓存.
ManagementService.registerMBeans( CacheManager.getInstance(), ManagementFactory.getPlatformMBeanServer(), true, true, true, true, true )
Run Code Online (Sandbox Code Playgroud)
实体缓存被忽略.它们应至少包含保存到数据库中的实体.或者通过查询检索.什么都没有动.
示例Java代码
EntityManager entityManager = Persistence.createEntityManagerFactory("foo").createEntityManager();
entityManager.getTransaction.begin();
entityManager.merge(bar); …Run Code Online (Sandbox Code Playgroud) 我们有一个包含100多个实体类的广泛实体模型.所有实体类都是单个实体超类的子类.共享缓存模式已设置为ALL.
@Entity
@Inheritance(strategy = InheritanceType.JOINED)
@Table(name = "entities")
public abstract class LongIdEntity {
@Id
@GeneratedValue(strategy = GenerationType.TABLE)
private Long id;
@Version
@Column(name = "OPT_LOCK_VERSION")
private Long lockVersion;
etc...
}
Run Code Online (Sandbox Code Playgroud)
一个示例子类:
@Entity
@Table(name = "cars")
public class Car extends LongIdEntity { ... }
Run Code Online (Sandbox Code Playgroud)
我们想要缓存二级缓存中的所有实体.问题是只为所有实体制作了1个缓存区域; 名为LongIdEntity.
调试显示Hibernate 确实找到了所有实体类,但无论如何都要为它们分配相同的区域.因为在SessionFactoryImpl:339:
String cacheRegionName = cacheRegionPrefix + model.getRootClass().getCacheRegionName();
Run Code Online (Sandbox Code Playgroud)
在我们的例子中,对model.getRootClass()的调用将始终产生" LongIdEntity ".
我认为这确实会缓存所有实体,但没有任何驱逐控制.有些课程非常频繁且只读.所以我们希望将它们固定在内存中.有些通常在某个时间跨度内使用,等等......将它们全部塞入同一个缓存会使一切无效.
在注释中指定区域无效.例如:
@Cache(usage = CacheConcurrencyStrategy.NONSTRICT_READ_WRITE,region = "cars")
@Entity
@Table(name = "cars")
public class Car extends LongIdEntity …Run Code Online (Sandbox Code Playgroud) 有各种记录Spring事务管理器的活动(启动,提交和回滚)的帖子.但是,我最近遇到了一个死锁问题,只记录活动是不够的.
我们的代码中的基本问题是需要使用事务传播和REQUIRES_NEW.反复进行了很多方法调用,最终我们将大量事务堆叠在一起.唉,代码库很大,解决方案很紧急......(我们都知道这是什么.)
问题是死锁,因为代码已添加到在另一个事务中按顺序修改的事务中的查询实体.Spring吐出一个异常,告诉实体X的更新超时,因为它被锁定了.现在,知道这很好,但是如何找到错误的代码:执行早期锁定的查询.
我的问题(最后):有没有办法记录添加到交易中的实体?这样我就可以专门查找锁定Spring正在抱怨的实体的事务.
谢谢 !:-)
说未引用的演员仍然订阅了事件流是否正确?至少,这是我从Akka实验中得到的......
我正在尝试在EventBus场景中为actor实现弱引用.在这些情况下,事件监听器/演员通常会来来去去.与应该一直存在的独立演员不同.显然取消注册当然可行.但我并不总是能够认识到这一点的正确时机.
Akka是否提供此类用例?
val as = ActorSystem.create("weak")
var actor = as.actorOf(Props[ExceptionHandler])
as.eventStream.subscribe(actor,classOf[Exception])
// an event is published & received
as.eventStream.publish(new KnownProblem)
//session expires or whatever that makes the actor redundant
actor = null
(1 to 30).foreach(_ => System.gc)
// an event is published & STILL received
as.eventStream.publish(new KnownProblem)
Run Code Online (Sandbox Code Playgroud) 我们在Tomcat 5.5中运行了经典的spring/hibernate/mysql堆栈.偶尔,当尝试超时锁定表行时,我们会遇到死锁.抛出某种死锁异常.
异常是明确的,堆栈跟踪指示出现了什么问题.但它没有显示持有实际锁的其他线程.除非我知道那个线程在做什么,否则它只是大海捞针.
问题:有没有办法找到另一个线程?
谢谢 !
一月
我受到CheckStyle警告在JavaDoc测试方法中缺少@throws的困扰.
我正在使用这样的测试方法:
/**
* Check that something works. <== CheckStyle wants @throws here
*/
@Test
public void testSomething() throws Exception {
...
}
Run Code Online (Sandbox Code Playgroud)
是否有一种可配置的方式告诉CheckStyle忽略这个?
"throws"条款特别是因为它是一种测试方法; 通常会忽略异常处理.
对于本地转换器,当编组到XML时,有没有办法访问父对象?
我需要使用来自第三方源的项目对集合进行编组 - 使用存储在父对象中的id.
唉,似乎无法查询通向当前对象的对象路径.还是有吗?
我正在寻找一个用Java编写的爬行工具来检测我们网站中的无效网址.
难点在于,大部分URL都是使用javaScript,CSS3和Ajax完成的.所以只是获取网站的网址内容是行不通的.
理想的是无头工具,能够执行javaScript,CSS样式和AJAX调用,并吐出它所访问的各种URL.
我确实意识到这是一个很高的要求,但也许它存在于某个地方?
我正在寻找一种在完整的Java应用程序上执行批量重构的方法.在这里,即make方法参数final,但事实并非如此.
这里有人知道这样的工具吗?或者解析Java源代码的东西,可以通过这些更改进行扩展.
我正在寻找以下问题的实用解决方案:
我正在寻找的是有一个通用的AOP错误处理建议.它将包装从外部库直接覆盖或实现方法的每个方法的代码.基本上做一个try/catch来进行错误恢复.
我当然可以手动搜索它们.但是我们的代码库很广泛.覆盖外部库类的方法的可能性也是如此.因此,考虑AOP来帮助我.
加载时间编织被排除,因为它涉及Web应用程序.可能无法在应用程序服务器中添加JVM代理程序.所以它必须是编译时编织.
有人知道如何使用AspectJ做到这一点?
我的问题实际上是标题:您建议在 Apache Karaf 中运行 Spring 4 应用程序吗?
如果没有,为什么不呢?如果这样做,如何进行?
容器、MVC 和数据就是所需要的。我过去已经在没有 OSGi 的情况下做过很多次了。对于 Karaf,我尝试了许多配置、清单、类路径和捆绑包。总是遇到奇怪的麻烦。最后让我想知道 Spring 是否仍然应该在 OSGi 中运行。如果是的话,有什么办法让它发挥作用?
因此我向有知识的人提出问题。:-)
java ×6
hibernate ×3
spring ×3
ehcache ×2
jpa-2.0 ×2
scala ×2
64-bit ×1
akka ×1
aop ×1
apache-karaf ×1
aspectj ×1
checkstyle ×1
coding-style ×1
deadlock ×1
final ×1
javascript ×1
junit ×1
jvm ×1
logging ×1
osgi ×1
spring-data ×1
spring-mvc ×1
tomcat ×1
transactions ×1
web-crawler ×1
web-testing ×1
xstream ×1