Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/jsf/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Jsf primepush移动聊天中的nullpointerexception_Jsf_Primefaces_Nullpointerexception_Primepush - Fatal编程技术网

Jsf primepush移动聊天中的nullpointerexception

Jsf primepush移动聊天中的nullpointerexception,jsf,primefaces,nullpointerexception,primepush,Jsf,Primefaces,Nullpointerexception,Primepush,我对PrimeFaces mobile非常陌生。我正在使用PrimePush技术开发一个移动聊天示例应用程序 我正在使用 primefaces-3.4.2.jar 大气-compat-jbossweb-1.0.8.jar 大气-compat-tomcat-1.0.8.jar 大气-compat-tomcat7-1.0.8.jar atmosphere-runtime-1.0.8.jar 我能够在桌面版PrimeFaces中运行PrimePush聊天。运行良好, 但是,如果我在移动版本中使用相

我对PrimeFaces mobile非常陌生。我正在使用PrimePush技术开发一个移动聊天示例应用程序

我正在使用

  • primefaces-3.4.2.jar
  • 大气-compat-jbossweb-1.0.8.jar
  • 大气-compat-tomcat-1.0.8.jar
  • 大气-compat-tomcat7-1.0.8.jar
  • atmosphere-runtime-1.0.8.jar
我能够在桌面版PrimeFaces中运行PrimePush聊天。运行良好, 但是,如果我在移动版本中使用相同的示例,JBoss 6.1.0会出现以下异常:

java.lang.NullPointerException
    com.sun.faces.application.ApplicationImpl.applyAnnotations(ApplicationImpl.java:1908)
    com.sun.faces.application.ApplicationImpl.createComponentApplyAnnotations(ApplicationImpl.java:1857)
    com.sun.faces.application.ApplicationImpl.createComponent(ApplicationImpl.java:1127)
    org.jboss.weld.integration.webtier.jsf.ForwardingApplication.createComponent(ForwardingApplication.java:122)
    com.sun.faces.facelets.tag.jsf.ComponentTagHandlerDelegateImpl.createComponent(ComponentTagHandlerDelegateImpl.java:446)
    com.sun.faces.facelets.tag.jsf.ComponentTagHandlerDelegateImpl.apply(ComponentTagHandlerDelegateImpl.java:144)
    javax.faces.view.facelets.DelegatingMetaTagHandler.apply(DelegatingMetaTagHandler.java:114)
    javax.faces.view.facelets.CompositeFaceletHandler.apply(CompositeFaceletHandler.java:94)
    com.sun.faces.facelets.tag.jsf.core.FacetHandler.apply(FacetHandler.java:101)
    javax.faces.view.facelets.CompositeFaceletHandler.apply(CompositeFaceletHandler.java:94)
    com.sun.faces.facelets.tag.jsf.core.ViewHandler.apply(ViewHandler.java:156)
    com.sun.faces.facelets.compiler.NamespaceHandler.apply(NamespaceHandler.java:89)
    javax.faces.view.facelets.CompositeFaceletHandler.apply(CompositeFaceletHandler.java:94)
    com.sun.faces.facelets.compiler.EncodingHandler.apply(EncodingHandler.java:79)
    com.sun.faces.facelets.impl.DefaultFacelet.apply(DefaultFacelet.java:148)
    com.sun.faces.application.view.FaceletViewHandlingStrategy.buildView(FaceletViewHandlingStrategy.java:734)
    com.sun.faces.lifecycle.RenderResponsePhase.execute(RenderResponsePhase.java:96)
    com.sun.faces.lifecycle.Phase.doPhase(Phase.java:97)
    com.sun.faces.lifecycle.LifecycleImpl.render(LifecycleImpl.java:135)
    javax.faces.webapp.FacesServlet.service(FacesServlet.java:309)
    org.jboss.weld.servlet.ConversationPropagationFilter.doFilter(ConversationPropagationFilter.java:67)
我的Facelets页面是:

 <!DOCTYPE html>
    <html>
    <f:view xmlns="http://www.w3.org/1999/xhtml"
        xmlns:f="http://java.sun.com/jsf/core"
        xmlns:h="http://java.sun.com/jsf/html"
        xmlns:ui="http://java.sun.com/jsf/facelets"
        xmlns:p="http://primefaces.org/ui"
        xmlns:pm="http://primefaces.org/mobile" contentType="text/html"
        renderKitId="PRIMEFACES_MOBILE">

        <pm:page title="Chat">

            <f:facet name="postinit">
                <h:outputScript library="primefaces" name="push/push.js" />
                <script type="text/javascript">
                    //<![CDATA[
                        function handleMessage(data) {
                            var chatContent = $(PrimeFaces.escapeClientId('chatForm:content'));
                            chatContent.append(data + '<br />');

                            //keep scroll
                            chatContent.scrollTop(chatContent.height());
                        }
                    //]]>
                </script>
            </f:facet>

            <!-- Main View -->
            <pm:view id="main" swatch="a">
                <pm:header title="Chat">
                </pm:header>

                <pm:content>

                    <p:socket onMessage="handleMessage" channel="/chat"
                        widgetVar="subscriber" />
                    <p:growl id="growl" />

                    <h:form id="chatForm">

                        <p:outputPanel id="container">
                            <h:panelGroup rendered="#{chatView.loggedin}">
                                <p:outputPanel id="content"
                                    style="width:100%;height:200px;overflow:auto" />

                                <p:separator />

                                <p:inputText value="#{chatView.globalMessage}"
                                    styleClass="messageInput" />
                                <p:commandButton value="Send"
                                    actionListener="#{chatView.sendGlobal}"
                                    oncomplete="$('.messageInput').val('')" />
                            </h:panelGroup>

                            <h:panelGroup rendered="#{not chatView.loggedIn}">
                                <p:inputText id="username" value="#{chatView.username}">
                                    <f:attribute name="placeholder" value="Username" />
                                </p:inputText>
                                <p:separator />

                                <p:commandButton value="Login" icon="refresh" update="container"
                                    actionListener="#    {chatView.login}" />
                            </h:panelGroup>
                        </p:outputPanel>

                    </h:form>

                </pm:content>

            </pm:view>

        </pm:page>

    </f:view>

</html>

//
我的后盾是:

   package test;


    import java.util.ArrayList;
    import java.util.List;
    import javax.annotation.PostConstruct;

    public class ChatUsers {

    private List<String> users;

    @PostConstruct
    public void init() {
        this.users = new ArrayList<String>();
    }



    public List<String> getUsers() {
        return users;
    }

    public void setUsers(List<String> users) {
        this.users = users;
    }

    public void addUser(String user) {
        this.users.add(user);
    }

    public void removeUser(String user) {
        this.users.remove(user);
    }

    public boolean contains(String user) {
        return this.users.contains(user);
    }
}
封装测试;
导入java.util.ArrayList;
导入java.util.List;
导入javax.annotation.PostConstruct;
公共类聊天室用户{
私人名单用户;
@施工后
公共void init(){
this.users=new ArrayList();
}
公共列表getUsers(){
返回用户;
}
公共用户(列表用户){
this.users=用户;
}
公共void addUser(字符串用户){
this.users.add(用户);
}
公共void removeUser(字符串用户){
this.users.remove(用户);
}
公共布尔包含(字符串用户){
返回此.users.contains(用户);
}
}

@PM77-1:请停止将非代码格式化为代码!API/库/框架名称和编程术语,如“JSF”、“PrimeFaces”、“mobile”等,都不是代码。@BalusC-那么您建议如何强调?大胆的斜体字?