小编Boz*_*zho的帖子

JMS(或任何消息传递解决方案)是否适用于关注者/关注模型

为了简单起见,我们假设我正在克隆twitter(我不是).因此,每个用户都可以关注其他用户,并被其他用户关注.对于您关注的每个用户,您会收到他发送的所有推文.一切都存储在数据存储中(无论是NoSQL解决方案还是分片关系数据库).

但是,当用户在线时,您是否认为让他们通过JMS接收推文是合适的,而不是轮询数据库并检索新的推文:

  • 当用户注册时(或登录时),创建一个以他(或他的id)命名的JMS主题
  • 当用户登录时,他订阅了他所关注的每个用户的JMS主题
  • 会话范围的对象(每用户)充当JMS消息侦听器
  • 所有收到的消息都存储在会话中(内存中)
  • UI通过会话范围对象的ajax轮询更新
  • 当用户注销或其会话超时时,消息监听器将被销毁

据称这背后的想法是为了提高性能 - 即不是过于频繁地查询数据存储区,而是在内存中缓存直接内容.

整个过程当然应该在集群中运行,并且可以扩展.

但是我不确定:

  • 这是否真的值得(在性能和可扩展性增益方面)
  • JMS是否不会增加不必要的开销,这等于查询数据存储区(从而使整个复杂化无用)

在某些时候(当事情有效时)我会做一些基准测试,但我想听一些初步的评论.

java architecture messaging scalability jms

5
推荐指数
1
解决办法
916
查看次数

哪个keyvalue商店有最好的表现?

我想两个月前.我找到了一个谷歌的开源项目,可以存储具有高性能的键值对.但我忘了这个名字.有人可以告诉我吗?或者您可以为我提供一些其他建议?我一直在使用BerkerlyDB,但我发现BerkerlyDb对我的程序来说还不够快.但是,berkerylyDB很方便使用,因为它看起来像一个java lib jar,可以无缝地与我的程序集成.我的程序也是用Java编写的.

java database

5
推荐指数
1
解决办法
4630
查看次数

最佳Java OpenID库

我知道这个问题是主观的,但是由于OpenID库页面列出了许多库,我认为可能会做出一些尝试来提名最好的一个或两个,就以下方面而言:

  • 项目活动
  • 质量(少量错误,简易API,正确实施协议)
  • 文件

我很感激任何使用过任何OpenID Java库的人的回答

java openid

5
推荐指数
1
解决办法
1195
查看次数

有没有办法知道JSF项目的xhtml文件中引用了哪些bean属性?

我继承了一年前由某人开发的JSF项目,该项目不再适用于我的公司,代码很难理解.其中很多似乎是由IDE自动生成的,尤其是类的getter和setter.实际上,每个私有字段都有关联的getter和setter,即使它们未在项目中的任何位置引用.
我想在尝试理解项目之前摆脱所有这些无用的代码,但鉴于它是一个JSF项目,bean的属性可能在xhtml文件中引用,因此在使用"show references"命令时不会显示.
有没有办法知道哪些方法真的没用,以便安全地删除它们?

我使用eclipse但是每个允许这样做的工具都会让我感到很放松!

java jsf properties javabeans

5
推荐指数
1
解决办法
149
查看次数

什么是Java相当于C++的STL队列?

我正在浏览Java文档以寻找C++的STL的Java等价物Queue,但我发现的只是一个被调用的接口Queue和一堆我无法做到的实现的实现.

Java是否有一个实现Queue只是一个FIFO数据结构而没有添加花里胡哨?我只需要enqueue,dequeue以及front运营和数据结构应该允许重复.

java queue collections data-structures

5
推荐指数
1
解决办法
2716
查看次数

Spring MVC 控制器映射未注册

这几天我正在使用 spring mvc 进行一些测试,但有一个问题。对于要测试的基本应用程序,我选择本教程: http://loianegroner.com/2010/09/extjs-spring-mvc-3-and-hibernate-3-5-crud-datagrid-example/ 我已下载该示例和一切都按预期工作。问题是当我尝试添加另一个控制器时。看来我添加的文件没有被扫描。

我的 web.xml 文件:

<servlet>
    <servlet-name>extjs-crud-grid-spring-hibernate</servlet-name>
    <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
    <init-param>
        <param-name>contextConfigLocation</param-name>
        <param-value>
            /WEB-INF/spring/app-config.xml
        </param-value>
    </init-param>
    <load-on-startup>1</load-on-startup>
</servlet>

<servlet-mapping>
    <servlet-name>extjs-crud-grid-spring-hibernate</servlet-name>
    <url-pattern>*.action</url-pattern>
</servlet-mapping>
Run Code Online (Sandbox Code Playgroud)

/WEB-INF/spring/app-config.xml:

<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:mvc="http://www.springframework.org/schema/mvc"
xmlns:context="http://www.springframework.org/schema/context"
xsi:schemaLocation="
    http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
    http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.0.xsd
    http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc-3.0.xsd">

<!-- Scans the classpath of this application for @Components to deploy as beans -->
<context:component-scan base-package="com.loiane" />

<!-- Configures the @Controller programming model -->
<mvc:annotation-driven />

<!-- misc -->
<bean id="viewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver">
    <property name="viewClass" value="org.springframework.web.servlet.view.JstlView"/>
    <property name="suffix" value=".jsp"/>
</bean>

<!-- Configures Hibernate - …
Run Code Online (Sandbox Code Playgroud)

java spring spring-mvc

5
推荐指数
1
解决办法
1万
查看次数

从scriptlet转换为JSF托管bean问题

我试图将此scriptlet代码转换为JSF类.

视图代码

<f:view>
<h:form binding="#{jsfSocketClient.form}">
    <h:outputText binding="#{jsfSocketClient.text}"/>

</h:form>
</f:view>
Run Code Online (Sandbox Code Playgroud)

和java代码

private HtmlForm form = new HtmlForm();
private HtmlOutputText text = new HtmlOutputText();

public HtmlForm getForm() 
{
    System.out.println("instance:  "+FacesContext.getCurrentInstance().getResponseWriter());
    ResponseWriter writer = (FacesContext.getCurrentInstance()).getResponseWriter();  
    try{

        int character;
        Socket socket = new Socket("127.0.0.1", 8765);

        InputStream inSocket = socket.getInputStream();
        OutputStream outSocket = socket.getOutputStream();

        String str = "Hello!\n";
        byte buffer[] = str.getBytes();
        outSocket.write(buffer);
        char characters = 0;
        while ((character = inSocket.read()) != -1) {
            text.setValue((char)character);
            //writer.write((char)character);
            //characters += (char)character;
        }
        //text.setValue(characters);
        if(str.equalsIgnoreCase("bye"))
                { …
Run Code Online (Sandbox Code Playgroud)

java jsf jsp scriptlet

5
推荐指数
1
解决办法
1090
查看次数

将 EJB 转换为 JSON Web 服务

我已经将 EJB 3.1 变成了 Web 服务。现在我需要创建用于与 JavaScript 组件通信的 JSON 网络服务。JavaScri[t 组件将使用接口的 JSON 版本与系统通信并获取所需的数据。由于性能原因,我不能使用 XML 而不是 JSON。我尝试自己研究,但没有找到任何解决方案。

请你有任何想法、解决方案或链接,我可以如何一起使用 EJB 和 JSON。

谢谢!最好的问候阿尔乔姆

java json web-services ejb

5
推荐指数
1
解决办法
5133
查看次数

WELD-001318无法解决模糊的依赖关系

部署我的应用程序时出现错误,如下所示.

Caused by: org.jboss.weld.exceptions.AmbiguousResolutionException: WELD-001318 Cannot resolve an ambiguous dependency between [
Producer Method [String] with qualifiers [@Any @Config] declared as [[method] @Produces @Config public ca.comdev.cdip.mis.enterpriseportal.configuration.ConfigurationProvider.getConfigurationValue(InjectionPoint)], 

Producer Method [String] with qualifiers [@Any @Config] declared as [[method] @Produces @Config public ca.comdev.cdip.mis.enterpriseportal.configuration.ConfigurationProvider.getConfigurationValue(InjectionPoint)]]
Run Code Online (Sandbox Code Playgroud)

我只有这样的方法,其标题看起来像这样

@Produces @Config public String getConfigurationValue(InjectionPoint p) throws ConfigurationException{...}
Run Code Online (Sandbox Code Playgroud)

和班级有这些

@Named
@Singleton
@Startup
public class ConfigurationProvider {...}
Run Code Online (Sandbox Code Playgroud)

请帮忙.这个错误可能比我的代码更模糊.

java cdi java-ee-6 jboss-weld

5
推荐指数
1
解决办法
4674
查看次数

在tomcat上使用jamon.war

我正在使用JAMon,我想使用它jamon.war来监控我的应用程序.但是,我的应用程序和jamon.war应用程序有不同的类加载器,因此他们没有看到彼此的静态变量(据我所知,数据存储在哪里).当我MonitorFactory.getReport()在我的应用程序中调用时,我收到了正确的数据.

如何使这个工作?

java tomcat jamon

5
推荐指数
1
解决办法
1768
查看次数