当使用Spring Websockets创建类似聊天应用程序的东西时,了解所有订阅任何给定主题的人都很有用.例如,用于在客户端中显示的在线数据.
我知道我可以实现ApplicationListener并保留我自己的"连接用户"列表,但似乎库必须已经在做这项工作.
什么是直接从库中获取活动订阅信息的推荐方法(并且不在内存或数据库中维护我自己的列表).
是否有列表或某种方式来挖掘核心构建系统触发的所有事件(即,您可以在_Events.groovy脚本中监听的内容?grails文档列出了一些"常见"事件 - 没有列表"全部"的?
(我知道你可以创建额外的事件,而插件经常会这样做 - 所以没有这些事件的全面列表 - 我只是在询问那些可能被抛出的事件 - box Grails安装所有标准构建操作.)
尝试使用1.5.2 jar文件(例如,在Java.net http://java3d.java.net/binary-builds.html上找到)来构建javax.vecmath .
试着打电话,比如说Point3d;
public class Foo {
public static void main(String[] args) {
Point3d t = new Point3d(1.0, 1.0, 1.0);
System.out.println(t.getX());
}
}
Run Code Online (Sandbox Code Playgroud)
在64位Windows和Linux(我只试过Ubuntu 10.04,64位)中,这个编译并运行.
在OS X(10.6.7)中,它不会编译:
...: cannot find symbol
symbol : method getX()
location: class javax.vecmath.Point3d
System.out.println (t.getX());
Run Code Online (Sandbox Code Playgroud)
这是使用完全相同的物理vecmath.jar
如果我直接使用源代码,它会在OS X上编译,但不会运行
Exception in thread "main" java.lang.NoSuchMethodError: javax.vecmath.Point3d.getX()D
Run Code Online (Sandbox Code Playgroud)
如果我自己在OS X上编译源代码到jar文件,然后再使用上面示例中的jar,则无法编译.
现在,正在访问的字段位于javax.vecmath.Tuple3d中,这是一个带有x,y和z公共字段的抽象类.所以在OS X上这将起作用(实际上,它似乎随处可用).
public class Foo {
public static void main(String[] args) {
Point3d t = new Point3d(1.0, 1.0, 1.0);
System.out.println(t.x);
}
}
Run Code Online (Sandbox Code Playgroud)
问题是,我正在开发一个依赖于vecmath.jar的代码库,其中维护者在Windows上并希望继续使用访问器方法,但我在OS X上.
我期待两个:
(1)了解发生了什么(2)根据vecmath.jar文件弄清楚如何使这些源可移植.
在开发Liferay portlet时,有时您需要使用文件工件.例如,您可能希望拥有可配置的映像,或者让用户将文件附加到自定义服务实体的方法.
Liferay内置了几个API来解决这个问题.每个人如何使用?