我正在研究一个更复杂的版本(车辆在X和Y方向上移动)
我做了这个例子来获得有关实现这一目标的更好方法的想法.
我遇到的问题是"通常是即时"部分.如果我没有足够快地得到响应,我认为它会摒弃我的算法的整个时间.处理这种情况的更好方法是什么?
以下是我要做的一些基本代码:
public class Mover implements MessageHandler {
private static final long CAR_UPDATE_RATE_IN_MS = 100;
private static double currX = 0;
private static double CONSTANT_SPEED_IN_MPS = 24.5872; // 55 mph
private static double increment = CONSTANT_SPEED_IN_MPS / (1000 / CAR_UPDATE_RATE_IN_MS);
static LinkedBlockingQueue<BaseMessage> messageQueue = new LinkedBlockingQueue<BaseMessage>(); // ms
private static int incrementor = 0;
public static void main(String[] args) {
startMoverExecutor();
}
private static void startMoverExecutor() {
ScheduledExecutorService mover = Executors.newSingleThreadScheduledExecutor();
mover.scheduleAtFixedRate((new Runnable() …Run Code Online (Sandbox Code Playgroud) 我正在使用一个新的Glassfish安装,只需很少的自定义.
我有一个消息驱动Bean(ObjectUpdateMDB),它监听一个主题,然后更新它在数据库中收到的对象.有很多对象正在更新.经过一段时间的运行后,我得到了这个例外:
SEVERE: JTS5031: Exception [org.omg.CORBA.INTERNAL: vmcid: 0x0 minor code: 0 completed: Maybe] on Resource [rollback] operation.
SEVERE: MDB00049: Message-driven bean [Persistence:ObjectUpdateMDB]: Exception in postinvoke : [javax.transaction.SystemException: org.omg.CORBA.INTERNAL: JTS5031: Exception [org.omg.CORBA.INTERNAL: vmcid: 0x0 minor code: 0 completed: Maybe] on Resource [rollback] operation. vmcid: 0x0 minor code: 0 completed: No]
SEVERE: javax.transaction.SystemException
javax.transaction.SystemException: org.omg.CORBA.INTERNAL: JTS5031: Exception [org.omg.CORBA.INTERNAL: vmcid: 0x0 minor code: 0 completed: Maybe] on Resource [rollback] operation. vmcid: 0x0 minor code: 0 completed: No
at com.sun.jts.jta.TransactionManagerImpl.rollback(TransactionManagerImpl.java:350)
at com.sun.enterprise.distributedtx.J2EETransactionManagerImpl.rollback(J2EETransactionManagerImpl.java:1144)
at com.sun.enterprise.distributedtx.J2EETransactionManagerOpt.rollback(J2EETransactionManagerOpt.java:426) … 我想将PostgreSQL的本机UUID类型与Java UUID一起使用.我使用Hibernate作为我的JPA提供程序和ORM.如果我尝试直接保存它,它只是在Postgres中保存为bytea.
我怎样才能做到这一点?
我在大约一个月前发现它后才学会如何使用兵马俑.这是一项非常酷的技术.
基本上我要做的是:
我的根(记录系统)是ConcurrentHashMap.
主要的Instrumented类是一个"JavaBean",我希望在HashMap中存在30个左右的字段.
Hashmap中将存在大约20000个这样的JavaBeans.
每个bean都有(至少)5个字段,每5秒更新一次.
(我之所以使用Terracotta,是因为需要跨JVM和节点访问这些JavaBeans.)
有TC经验的人有没有提示?表现是关键.
其他类似应用的任何例子?
所以假设我有一个N大小的服务器阵列设置如下:
alt text http://www.terracotta.org/web/download/attachments/43909161/ServerArrayMirrorGroup.png
我有一个简单的JavaBean/POJO:
package example;
public class Person {
private OtherObject obj;
public void setObj(OtherObject theObj) {
synchronized (this) {
obj = theObj;
}
}
public OtherObject getObj() {
synchronized (this) {
return obj;
}
}
}
Run Code Online (Sandbox Code Playgroud)
现在,如果其中一个客户端在TC根(数据结构)中的Person对象上调用Person.setObj(OtherObject),则该客户端上的synchronized块(在Person.setObj(OtherObject)中)是否保持:
1)在使用该Person.obj属性同步/更新N大小的服务器阵列中的所有N个服务器之前?
要么
2)直到"活动"服务器与更新的Person.obj属性同步?那么阵列中的其他(N-1)服务器是否尽可能同步?
要么
3)我在看的其他一些方法?
我正在创建一个简单的聊天程序,我想最终显示HTML链接.我现在的问题是我无法将文本显示在我想要的用户名旁边.
我希望用户的名称为粗体,并且文本显示在其旁边,但由于某种原因,非粗体文本显示为居中.
如果我不粗引用户名,它可以正常工作.前两个是我的名字用粗体显示,中间是名称没有粗体,底部显示一个超链接,我希望它看起来像中间两个,但名称加粗.

这是代码,我做错了什么?请注意,我尝试用JEditorPane替换JTextPane,同样的事情发生了.
package com.test;
import java.awt.BorderLayout;
import java.awt.Color;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.JTextPane;
import javax.swing.WindowConstants;
import javax.swing.event.HyperlinkEvent;
import javax.swing.event.HyperlinkEvent.EventType;
import javax.swing.event.HyperlinkListener;
import javax.swing.text.BadLocationException;
import javax.swing.text.SimpleAttributeSet;
import javax.swing.text.StyleConstants;
import javax.swing.text.html.HTML;
public class JTextPaneTest extends JPanel {
JTextPane pane;
public JTextPaneTest() {
this.setLayout(new BorderLayout());
pane = new JTextPane();
pane.setEditable(false);
pane.setContentType("text/html");
JScrollPane scrollPane = new JScrollPane(pane);
this.add(scrollPane, BorderLayout.CENTER);
pane.addHyperlinkListener(new HyperlinkListener() {
@Override
public void hyperlinkUpdate(HyperlinkEvent e) {
if (e.getEventType() == EventType.ACTIVATED) {
System.out.println(e.getDescription());
}
}
});
}
public …Run Code Online (Sandbox Code Playgroud) 我知道在WorldWind Java中你可以找到高程和特定位置,如下所示:
public Double getPositionElevationMeters(Double lat, Double lon) {
double elevation = getWorldWindCanvas().getModel().getGlobe()
.getElevation(Angle.fromDegrees(lat), Angle.fromDegrees(lon));
return elevation;
}
Run Code Online (Sandbox Code Playgroud)
有没有办法弄清楚这个纬度/经度是否实际上是一个主要的水体或土地?我采取了一种"盲目"的方法,只考虑低于0的高度是水,但这显然不是理想的.
我甚至会使用另一个能够提供这些信息的图书馆; 我只需要它离线工作.
我试图想出一种方法来以编程方式获取用户点击WorldWind AnalyticSurface的点的视觉颜色(而不是拾取颜色).
看看AnalyticSurface和PickedObjectList我不确定我需要串起来执行此操作的API调用,或者甚至可能.
有人知道如何为hibernate创建自定义ID生成器的一些很好的教程吗?
我在映射类的嵌入属性时遇到了麻烦.我创建了一些类似于我试图说明的类.基本上,我有一个使用继承的@Embeddable类层次结构.顶级类"Part Number"只有一个属性,扩展类没有为"Part Number"类添加任何属性,它们只添加了一些验证/逻辑.
这就是我的意思:
部分
@Entity
@Table(name="PART")
public class Part {
private Integer id;
private String name;
private PartNumber partNumber;
@Id
@GeneratedValue(strategy=GenerationType.SEQUENCE)
public Integer getId() {
return id;
}
public void setId(Integer id) {
this.id = id;
}
@Column(name="PART_NAME")
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
@Embedded
public PartNumber getPartNumber() {
return partNumber;
}
public void setPartNumber(PartNumber partNumber) {
this.partNumber = partNumber;
}
}
Run Code Online (Sandbox Code Playgroud)
零件号
@Embeddable
public abstract class PartNumber { …Run Code Online (Sandbox Code Playgroud) java ×9
hibernate ×3
java-ee ×3
jpa ×2
swing ×2
terracotta ×2
worldwind ×2
algorithm ×1
awt ×1
failover ×1
gis ×1
glassfish ×1
ipc ×1
jboss-mdb ×1
jeditorpane ×1
jtextpane ×1
map ×1
nhibernate ×1
performance ×1
postgresql ×1
primary-key ×1
uuid ×1