相关疑难解决方法(0)

Java EE究竟是什么?

我已经做了几年的Java SE并继续使用Java EE.但是我在理解Java EE的某些方面时遇到了一些麻烦.

  1. Java EE只是一个规范吗?我的意思是:EJB Java EE?

  2. EJB/Spring是不同的Java EE实现?

很抱歉,但是我很难理解Java EE是什么.有人能解释一下Java EE是什么吗?和EJB?

java ejb java-ee

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

JSF控制器,服务和DAO

我正在尝试习惯JSF如何处理数据(来自弹簧背景)

我正在创建一个维护用户列表的简单示例,我有类似的东西

<h:dataTable value="#{userListController.userList}" var="u">
    <h:column>#{u.userId}</h:column>
    <h:column>#{u.userName}</h:column>
</h:dataTable>
Run Code Online (Sandbox Code Playgroud)

然后"控制器"有类似的东西

@Named(value = "userListController")
@SessionScoped
public class UserListController {
    @EJB
    private UserListService userListService;

    private List<User> userList;

    public List<User> getUserList() {
        userList = userListService.getUsers();
        return userList;
    }
}
Run Code Online (Sandbox Code Playgroud)

而"服务"(虽然看起来更像是DAO)有

public class UserListService {

    @PersistenceContext
    private EntityManager em;

    public List<User> getUsers() {
        Query query = em.createQuery("SELECT u from User as u");
        return query.getResultList();
    }
}
Run Code Online (Sandbox Code Playgroud)

这是正确的做事方式吗?我的术语是对的吗?"服务"感觉更像是DAO?控制器感觉它正在做一些服务工作.

jsf dao ejb jpa java-ee

32
推荐指数
2
解决办法
3万
查看次数

使用JSF/Java EE从数据库进行实时更新

我有一个应用程序在以下环境中运行.

  • GlassFish Server 4.0
  • JSF 2.2.8-02
  • PrimeFaces 5.1决赛
  • PrimeFaces Extension 2.1.0
  • OmniFaces 1.8.1
  • EclipseLink 2.5.2具有JPA 2.1
  • MySQL 5.6.11
  • JDK-7u11

有几个公共页面从数据库中延迟加载.一些CSS菜单显示在模板页面的标题上,如显示类别/子类别特征,最畅销,新到达等产品.

CSS菜单根据数据库中的各种产品类别从数据库动态填充.

这些菜单填充在每个页面加载上,这是完全没有必要的.其中一些菜单需要复杂/昂贵的JPA标准查询.

目前,填充这些菜单的JSF托管bean是视图范围的.它们都应该是应用程序作用域,在应用程序启动时只加载一次,并且只有在更新/更改相应数据库表(类别/子类别/产品等)中的某些内容时才更新.

我做了一些尝试来理解WebSokets(从未尝试过,对WebSokets来说是全新的),就像这样这个.他们在GlassFish 4.0上运行良好,但它们不涉及数据库.我仍然无法正确理解WebSokets的工作方式.特别是涉及数据库时.

在这种情况下,当更新/删除/添加到相应的数据库表时,如何通知关联的客户端并使用数据库中的最新值更新上述CSS菜单?

一个简单的例子很棒.

jsf java-ee websocket primefaces java-ee-7

29
推荐指数
2
解决办法
2万
查看次数

服务器如何将异步更改推送到JSF创建的HTML页面?

当我们创建JSF页面时,客户端请求允许使用Java代码和HTML的组合动态生成HTML.我们可以使用JSF框架在HTML页面中引入钩子,允许服务器基于稍后在服务器上发生的异步事件来更新HTML页面,通常是通过不同的线程吗?

jsf asynchronous push

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

如何通过Maven正确安装和配置JSF库?

我正在尝试将基于JSF的应用程序部署到Tomcat 6.我的构建系统的设置方式,WAR本身没有任何库,因为该服务器共提供43个应用程序.而是将库复制到共享库文件夹中并在应用程序之间共享.部署时,我收到此错误

SEVERE: Error deploying configuration descriptor SSOAdmin.xml
java.lang.ClassFormatError: Absent Code attribute in method that is not native or abstract in class file javax/faces/webapp/FacesServlet
    at java.lang.ClassLoader.defineClass1(Native Method)
    at java.lang.ClassLoader.defineClassCond(ClassLoader.java:631)
    at java.lang.ClassLoader.defineClass(ClassLoader.java:615)
    at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:141)
    at java.net.URLClassLoader.defineClass(URLClassLoader.java:283)
    at java.net.URLClassLoader.access$000(URLClassLoader.java:58)
    at java.net.URLClassLoader$1.run(URLClassLoader.java:197)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.net.URLClassLoader.findClass(URLClassLoader.java:190)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:306)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:247)
    at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1667)
    at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1526)
    at org.apache.catalina.startup.WebAnnotationSet.loadApplicationServletAnnotations(WebAnnotationSet.java:108)
    at org.apache.catalina.startup.WebAnnotationSet.loadApplicationAnnotations(WebAnnotationSet.java:58)
    at org.apache.catalina.startup.ContextConfig.applicationAnnotationsConfig(ContextConfig.java:297)
    at org.apache.catalina.startup.ContextConfig.start(ContextConfig.java:1078)
    at org.apache.catalina.startup.ContextConfig.lifecycleEvent(ContextConfig.java:261)
    at org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSupport.java:142)
    at org.apache.catalina.core.StandardContext.start(StandardContext.java:4611)
    at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:799)
    at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:779)
    at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:601)
    at org.apache.catalina.startup.HostConfig.deployDescriptor(HostConfig.java:675)
    at org.apache.catalina.startup.HostConfig.deployDescriptors(HostConfig.java:601)
    at org.apache.catalina.startup.HostConfig.deployApps(HostConfig.java:502)
    at org.apache.catalina.startup.HostConfig.start(HostConfig.java:1315) …
Run Code Online (Sandbox Code Playgroud)

installation configuration jsf tomcat maven

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

f:JSF 2.3中的websocket

我试图获得BalusC的JSF 2.3+示例(服务器如何将异步更改推送到由JSF创建的HTML页面?)使用JBoss WildFly 12.0.0.Final

我添加了JBoss JSF JAR:

jboss-jsf-api_2.3_spec-2.3.3.SP1.jar
Run Code Online (Sandbox Code Playgroud)

但是,当我尝试显示我的XHTML页面时,它具有:

<h:form>
    <f:websocket channel="push">
        <f:ajax event="updateNotifications" render=":panelGridSelect" />
    </f:websocket>
</h:form>
Run Code Online (Sandbox Code Playgroud)

我明白了:

javax.faces.view.facelets.TagException:/enterProduct.xhtml @ 61,45标记库支持的命名空间: http://xmlns.jcp.org/jsf/core,但没有标签被用于名定义:的WebSocket

在IntelliJ IDEA中:

f:websocket
Run Code Online (Sandbox Code Playgroud)

显示为红色,好像找不到它?

f:websocket的taglib在哪里?

jsf websocket wildfly jsf-2.3

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