很多次我得到像这样的堆栈跟踪(请参阅箭头的混乱线):
org.springframework.dao.DataIntegrityViolationException: could not execute statement; SQL [n/a]; constraint [PRIMARY]; nested exception is org.hibernate.exception.ConstraintViolationException: could not execute statement
at org.springframework.orm.hibernate5.SessionFactoryUtils.convertHibernateAccessException(SessionFactoryUtils.java:164)
at org.springframework.orm.hibernate5.HibernateTransactionManager.convertHibernateAccessException(HibernateTransactionManager.java:741)
at org.springframework.orm.hibernate5.HibernateTransactionManager.doCommit(HibernateTransactionManager.java:589)
at org.springframework.transaction.support.AbstractPlatformTransactionManager.processCommit(AbstractPlatformTransactionManager.java:761)
at org.springframework.transaction.support.AbstractPlatformTransactionManager.commit(AbstractPlatformTransactionManager.java:730)
at org.springframework.transaction.interceptor.TransactionAspectSupport.commitTransactionAfterReturning(TransactionAspectSupport.java:485)
at org.springframework.transaction.interceptor.TransactionAspectSupport.invokeWithinTransaction(TransactionAspectSupport.java:291)
at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:96)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:179)
at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:653)
---------> at com.panpwr.admin.services.detector.SimpleDetectorPersistenceService$$EnhancerBySpringCGLIB$$66303639.saveComplexRuleAndActionTemplates(<generated>)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
...
...
...
Run Code Online (Sandbox Code Playgroud)
$$符号是什么,"生成"是什么意思?
com.panpwr.admin.services.detector.SimpleDetectorPersistenceService$$EnhancerBySpringCGLIB$$66303639.saveComplexRuleAndActionTemplates(<generated>)
为什么它只说执行的方法而不是它中的行?
据我所知,新的Java(8)引入了新的同步工具,如LongAccumulator(在原子包下).
在文档中,它说当多个线程的变量更新频繁时,LongAccumulator更有效.
我想知道它如何实现更高效?
我用这个时:
<Label Grid.Column="2"
Grid.Row="8"
Content="{x:Static res:Strings.ToolPanelEditView_Validation_MandatoryField}" >
</Label>
Run Code Online (Sandbox Code Playgroud)
它运行得很好.
但是当我添加Style标签时:
<Label Grid.Column="2"
Grid.Row="8"
Content="{x:Static res:Strings.ToolPanelEditView_Validation_MandatoryField}" >
<Style>
<Setter Property="Label.Margin" Value="0" />
</Style>
</Label>
Run Code Online (Sandbox Code Playgroud)
它没有编译说:
属性"内容"设置不止一次
我有一个奇怪的问题调试Android应用程序.为了准确,我在这里复制我正在运行的确切代码:
// Get the puzzles from cache
List<PuzzleDetails> newPuzzles = m_cachedPuzzles.getPuzzles(count);
if(newPuzzles.size() > 0){
// Remove from cache
m_cachedPuzzles.removePuzzles(newPuzzles); // LINE (A)
// Add the new puzzles from cache immediately
m_ownedPuzzles.addPuzzles(newPuzzles);
Log.d("requests", "" + newPuzzles.size() + " moved from cache to user");
}
int left = count - newPuzzles.size();
String deviceId = ResourcesPublisher.getInstance().getDeviceId();
// Don't let anyone else use these points for now
ChallengePointsManagerImpl.getInstance().usePoints(left);
Log.d("requests", "aquirePuzzles(" + left + ")");
// Get a list of requests for 'left' number of …Run Code Online (Sandbox Code Playgroud) 我在Eclipse(windows)中使用java,我正在尝试使用:
myClass.getResource("/image.jpg"),
Run Code Online (Sandbox Code Playgroud)
而image.jpg存在于root loacation"myProject /"中.它返回null.
我检查了很多其他线程,但没有一个解决了我的问题.
所以我试着评估一下:
this.getClass().getResource("/").getPath();
Run Code Online (Sandbox Code Playgroud)
它返回"myProject/build/classes".
所以我检查了这个目录的项目配置,并找到了完全相同的目录
Java构建路径 - >源 - >默认输出文件夹
我的问题是:
为什么我的资源的默认目录是输出文件夹?
如上所述,我想从另一个文件夹中获取资源,但尝试调用"/../"不起作用...如何加载其他未嵌套在我的类dir中的资源?(我可以改变我的输出目录,但我认为它会非常难看......)
我有一个KStream我想要计算事件的某些方面.我按如下方式做到:
KTable<Windowed<Long>, Counter> ret = input.groupByKey()
.windowedBy(TimeWindows.of(Duration.of(10, SECONDS)))
.aggregate(Counter::new, (k, v, c) -> new Counter(c.count + v.getDimension()));
Run Code Online (Sandbox Code Playgroud)
我希望有一个新KStream的聚合作为事件.我可以这样轻松地做到:
ret.toStream().to("output");
Run Code Online (Sandbox Code Playgroud)
问题是"输入"主题中的每个事件都会产生一个"输出"主题的事件.我想仅在窗口完成时将事件发布到输出主题.例如,如果窗口是一分钟,则每分钟每个键发送一个事件.
我想我可以这样做:
ret.toStream().foreach((k, v) -> sendToKafkaTopic("output"));
Run Code Online (Sandbox Code Playgroud)
但我想知道是否有更好/更优雅的方式呢?
我正在使用PDFClown java库创建PDF文件.
有时,当使用Adobe Acrobat Reader打开这些文件时,我会收到一条着名的错误消息:
"此页面上存在错误.Acrobat可能无法正确显示页面.请与创建PDF文档的人员联系以解决问题."
只有向下滚动到第8页,然后向上滚动到3'页面时,才会在读取(使用Adobe)附加文件时显示错误.或者,缩小到33.3%也会产生消息.
只是为了记录,福昕阅读器完美地读取文件,以及其他PDF阅读器,如浏览器.
我的问题是:
我的文件出了什么问题?(附件)
我怎么能找到它的错误?有没有一种工具,它告诉你在那里做的错误在哪里?
谢谢!
已经反复说过,除了equals()方法之外,不应该使用instanceof运算符,否则它是一个糟糕的OOP设计.
有人写道,这是一个繁重的操作,但似乎,至少java,处理得相当好(甚至比Object.toString()比较更有效).
有人可以解释,或指导我一些文章,解释为什么这是一个糟糕的设计?
考虑一下:
Class Man{
doThingsWithAnimals(List<Animal> animals){
for(Animal animal : animals){
if(animal instanceOf Fish){
eatIt(animal);
}
else if(animal instanceof Dog){
playWithIt(animal);
}
}
}
...
}
Run Code Online (Sandbox Code Playgroud)
决定如何处理动物,取决于男人.男人的欲望也可能偶尔改变,决定吃狗,玩鱼,而动物不会改变.
如果您认为instanceof运算符不是正确的OOP设计,请告诉您如何在没有instanceof的情况下执行此操作,为什么?
谢谢.
我正在使用 EmbeddedKafka 通过以下注释配置来测试我的模块:
@ExtendWith(SpringExtension.class)
@SpringBootTest
@TestPropertySource(locations = "classpath:test.properties")
@EmbeddedKafka(partitions = 1,
topics = {"topic"},
brokerProperties = {
"auto.create.topics.enable=${topics.autoCreate:false}",
"delete.topic.enable=${topic.delete:true}",
"broker.id=2"})
Run Code Online (Sandbox Code Playgroud)
它在大多数情况下都有效。
但有时,它在创建 spring 上下文时失败,因为 zookeeper 会话超时:
java.lang.IllegalStateException:无法加载 ApplicationContext
...
在 java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128) 在 java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628) 在 org.gradle.internal .concurrent.ThreadFactoryImpl$ManagedThreadRunnable.run(ThreadFactoryImpl.java:55) 在 java.base/java.lang.Thread.run(Thread.java:834) 引起:org.springframework.beans.factory.BeanCreationException:创建 bean 时出错名称为“embeddedKafka”:init 方法调用失败;嵌套异常是 org.apache.zookeeper.KeeperException$SessionExpiredException: KeeperErrorCode = Session 在 org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1745) at org.springframework.beans.factory.support 过期。 org.apache.zookeeper.KeeperException$SessionExpiredException: KeeperErrorCode = Session 在 org.apache.zookeeper.KeeperException.create(KeeperException.java:130) at kafka.zk.KafkaZkClient.checkedEphemeralCreate(KafkaZkClient.scala:1631) at kafka.zk 过期.KafkaZkClient.registerBroker(KafkaZkClient.scala:87) at kafka.server.KafkaServer.startup(KafkaServer.scala:257) at kafka.utils.TestUtils$.createServer(TestUtils.scala:132) at kafka.utils.TestUtils.createServer (TestUtils.scala) 在 org.springframework.kafka.test.EmbeddedKafkaBroker.afterPropertiesSet(EmbeddedKafkaBroker.java:215) 在 org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:215) at 1 beans.factory.support.AbstractAutowireCapableBeanFactory。initializeBean(AbstractAutowireCapableBeanFactory.java:1741) ... 82 …
apache-kafka spring-boot apache-zookeeper spring-kafka embedded-kafka
我被告知使用volatile变量比使用synchronized块(读或写)时使用synchronized块要高效得多.
直到Java 1.4我才能看到原因(因为那时线程不必刷新并刷新所有可访问的内存).
但是从Java 1.5开始,我在使用volatile变量和synchronized块之间看到的唯一区别就是锁获取机制.
获得锁真的那么贵吗?如果是这样,为什么呢?
java ×5
apache-kafka ×2
concurrency ×2
debugging ×2
acrobat ×1
android ×1
atomic ×1
c# ×1
cglib ×1
classloader ×1
classpath ×1
eclipse ×1
getresource ×1
instanceof ×1
java-8 ×1
oop ×1
pdf ×1
pdfclown ×1
spring ×1
spring-boot ×1
spring-kafka ×1
stack-trace ×1
volatile ×1
wpf ×1