标签: java-ee

我应该先学习什么,Spring还是Hibernate?

我刚刚开始学习Struts,并且我正努力做好自己作为Java程序员的工作.我的下一个决定是选择接下来要学习的内容,Spring还是Hibernate?

你们也有任何建议或提示让我变得更好吗?提前致谢!

spring hibernate java-ee

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

JPA和JPA2之间的差异

有没有人有JPA 1和JPA 2之间的变化列表?我已经阅读了关于Criteria查询和其他更改的内容,但我想要一个"什么是新的"参考.谢谢

java jpa java-ee jpa-2.0

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

如何多次读取request.getInputStream()

我有这个代码:

@Override
public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain)
        throws IOException, ServletException {
    logger.info("Filter start...");

    HttpServletRequest httpRequest = (HttpServletRequest) request;
    HttpServletResponse httpResponse = (HttpServletResponse) response;

    String ba = getBaId(getBody(httpRequest));

    if (ba == null) {
        logger.error("Wrong XML");
        httpResponse.setStatus(HttpServletResponse.SC_BAD_REQUEST);
    } else {      

        if (!clients.containsKey(ba)) {
            clients.put(ba, 1);
            logger.info("Client map : init...");
        } else {
            clients.put(ba, clients.get(ba).intValue() + 1);
            logger.info("Threads for " + ba + " = " + clients.get(ba).toString());
        }

        chain.doFilter(request, response);
    }
}
Run Code Online (Sandbox Code Playgroud)

和这个web.xml(包缩短和名称更改,但它看起来相同)

<?xml version="1.0" encoding="ISO-8859-1"?>
<web-app>
  <filter>
    <filter-name>TestFilter</filter-name> …
Run Code Online (Sandbox Code Playgroud)

java servlets java-ee servlet-filters

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

@ Inject,@ EJB,@ Local,@ Remote,@ LocalBean等......:困惑?

我有以下配置:

  • 1个包含2个带有EJB组件的EJB-JAR的GF上的EAR.
  • 1另一个Glassfish服务器(=>其他JVM)上的WAR 包含访问EJB组件的Web组件.

我在EAR的每个EJB-JAR中都有2个EJB业务服务,它们都是这样开发的:

@Remote
public interface ServiceAItf {
    ...
}

@Stateless
@Local
public class ServiceAImpl implements ServiceAItf {
    ...
}
Run Code Online (Sandbox Code Playgroud)

在我的WAR中,我通过远程接口上的显式"InitialContext.lookup"访问EJB组件.

在我的EAR中,我对注入的最佳实践非常困惑,无论是在性能,架构等方面......

我有以下问题:

  • 如您所见,我已在服务实现上声明了注释"@Local",而没有定义本地接口.这是对的吗?至少我在部署时没有错误.但也许我应该使用"@LocalBean"注释?我想"@LocalBean"注释只是允许直接调用实现作为"本地" EJB,但你必须在代码中使用这样的实现:

    @Stateless @Local public class ServiceBImpl实现ServiceBItf {@EJB private ServiceAImpl serviceA; ...}

  • 将一个EJB注入另一个EJB的最佳方法是什么? 它的工作原理如下:

    @Stateless @Local公共类ServiceBImpl实现ServiceBItf {@EJB private ServiceAItf serviceA; ...}

但是从我注意到的,注入的"serviceA"是远程代理,而它位于同一个EAR文件中的同一个JVM中.所以我认为会对性能产生影响.这就是为什么我试图像这样注入服务:

@Stateless
@Local
public class ServiceBImpl implements ServiceBItf {
    @Inject
    private ServiceAItf serviceA;
    ...
}
Run Code Online (Sandbox Code Playgroud)

但它在GF中不起作用,我有以下例外:

WELD-001408 Unsatisfied dependencies for type [...] ... …
Run Code Online (Sandbox Code Playgroud)

java ejb java-ee cdi

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

配置JPA让PostgreSQL生成主键值

所以我们的项目使用PostgreSQL数据库,我们使用JPA来操作数据库.我们使用Netbeans 7.1.2中的自动创建程序从数据库创建了实体.

经过小的更改后,我们的主键值被描述为:

@Id
@GeneratedValue(strategy=GenerationType.IDENTITY)
@Basic(optional = false)
@NotNull
@Column(name = "idwebuser", nullable = false)
private Integer idwebuser;
Run Code Online (Sandbox Code Playgroud)

问题是现在应用程序不灵活,因为当我们直接修改数据库(使用SQL或其他工具)而不是通过Java应用程序时 - 生成的值低于实际的数据库ID值 - 因此我们在创建新实体.

是否有可能JPA可以让数据库自动生成ID,然后在创建过程后获取它?或者什么是更好的解决方案?谢谢.

编辑 更具体地说:我们有一个用户表,我的问题是使用任何类型的策略生成类型,JPA正在插入一个具有由其生成器ID指定的新实体.这对我来说是错误的,因为如果我自己对表进行更改,通过添加新条目,应用程序的GeneratedValue低于当前ID - 这导致我们出现重复ID异常.我们能解决它吗?)?

关于答案的简短说明 我身边有一个小谎言,因为我们使用了PG管理员 - >查看前100行并从那里编辑了行而不是使用选择.但是,事实证明,这个编辑器以某种方式跳过了更新ID的过程,因此即使在DB中,当我们编写一个正确的INSERT时,它也会被执行不正确的ID!所以它基本上是我们使用的编辑器的问题,而不是数据库和应用程序......

现在它甚至可以使用 @GeneratedValue(strategy=GenerationType.IDENTITY)

postgresql entity netbeans jpa java-ee

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

如何在Tomcat上部署基于EJB的应用程序

我使用EJB3和JSF开发了一个小型Java应用程序.但是我希望将它部署在Tomcat服务器上(不是GlassFish而不是Netbeans IDE,它必须独立于Netbeans).

如何在Tomcat上部署它?

configuration tomcat ejb java-ee

35
推荐指数
3
解决办法
7万
查看次数

在所有3个平台上推送通知(android,ios,windows phone)

我正在计划一个跨平台的应用程序.是否可以仅使用一个API /模块在所有3个(iphone,android,windowsphone)上实现推送通知?还有其他选择吗?服务器端需要做什么?请指出我正确的方向.(文档,示例代码,如果存在)提前感谢.

windows android java-ee ios

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

在servlet中自动装配

我想在servlet中使用spring autowiring,所以这是我的代码:

@Configurable
public class ImageServlet extends HttpServlet {

   @Autowired
   private SystemPropertyDao systemPropertyDao;

   @Override
   public void init() throws ServletException {


   String imagePath = systemPropertyDao.findByID(StaticParam.CONTENT_FOLDER);

}
Run Code Online (Sandbox Code Playgroud)

而SystemPropertyDao注释时@Repository

和我的applicationContext.xml:

<context:component-scan base-package="com.basepackage" />
<mvc:annotation-driven />
<context:annotation-config />
<context:spring-configured/>
Run Code Online (Sandbox Code Playgroud)

web.xml:

  <servlet>
    <servlet-name>imageServlet</servlet-name>
    <servlet-class>com.xeno.basepackage.ImageServlet</servlet-class>
  </servlet>

  <servlet-mapping>
    <servlet-name>imageServlet</servlet-name>
    <url-pattern>/myimages/*</url-pattern>
  </servlet-mapping>
Run Code Online (Sandbox Code Playgroud)

有时自动装配工作,有时它不工作(对spring bean systemPropertyDao的引用为null),任何人都可以告诉我,如果我错过了什么?

spring servlets dependency-injection autowired java-ee

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

Hibernate异常_ $$ _ javassist_0无法强制转换为javassist.util.proxy.Proxy

您好我正在使用developnig java Web应用程序,当我尝试使用hibernate获取数据时,我得到了下一个异常

java.lang.ClassCastException: com.digitalticket.model.UserType_$$_javassist_0 cannot be cast to javassist.util.proxy.Proxy
Run Code Online (Sandbox Code Playgroud)

这里是栈跟踪

java.lang.ClassCastException: com.digitalticket.model.UserType_$$_javassist_0 cannot be cast to javassist.util.proxy.Proxy
    at org.hibernate.proxy.pojo.javassist.JavassistLazyInitializer.getProxy(JavassistLazyInitializer.java:147)
    at org.hibernate.proxy.pojo.javassist.JavassistProxyFactory.getProxy(JavassistProxyFactory.java:75)
    at org.hibernate.tuple.entity.AbstractEntityTuplizer.createProxy(AbstractEntityTuplizer.java:771)
    at org.hibernate.persister.entity.AbstractEntityPersister.createProxy(AbstractEntityPersister.java:4613)
    at org.hibernate.event.internal.DefaultLoadEventListener.createProxyIfNecessary(DefaultLoadEventListener.java:349)
    at org.hibernate.event.internal.DefaultLoadEventListener.proxyOrLoad(DefaultLoadEventListener.java:270)
    at org.hibernate.event.internal.DefaultLoadEventListener.onLoad(DefaultLoadEventListener.java:150)
    at org.hibernate.internal.SessionImpl.fireLoad(SessionImpl.java:1070)
    at org.hibernate.internal.SessionImpl.internalLoad(SessionImpl.java:989)
    at org.hibernate.type.EntityType.resolveIdentifier(EntityType.java:716)
    at org.hibernate.type.EntityType.resolve(EntityType.java:502)
    at org.hibernate.engine.internal.TwoPhaseLoad.doInitializeEntity(TwoPhaseLoad.java:170)
    at org.hibernate.engine.internal.TwoPhaseLoad.initializeEntity(TwoPhaseLoad.java:144)
    at org.hibernate.loader.Loader.initializeEntitiesAndCollections(Loader.java:1114)
    at org.hibernate.loader.Loader.processResultSet(Loader.java:972)
    at org.hibernate.loader.Loader.doQuery(Loader.java:920)
    at org.hibernate.loader.Loader.doQueryAndInitializeNonLazyCollections(Loader.java:354)
    at org.hibernate.loader.Loader.doList(Loader.java:2553)
    at org.hibernate.loader.Loader.doList(Loader.java:2539)
    at org.hibernate.loader.Loader.listIgnoreQueryCache(Loader.java:2369)
    at org.hibernate.loader.Loader.list(Loader.java:2364)
    at org.hibernate.loader.criteria.CriteriaLoader.list(CriteriaLoader.java:126)
    at org.hibernate.internal.SessionImpl.list(SessionImpl.java:1682)
    at org.hibernate.internal.CriteriaImpl.list(CriteriaImpl.java:380)
    at com.digitalticket.model.DAO.fetchAll(DAO.java:204)
    at com.digitalticket.controller.IndexController.handleRequestInternal(IndexController.java:22)
    at org.springframework.web.servlet.mvc.AbstractController.handleRequest(AbstractController.java:154)
    at org.springframework.web.servlet.mvc.SimpleControllerHandlerAdapter.handle(SimpleControllerHandlerAdapter.java:50)
    at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:945)
    at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:876)
    at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:961) …
Run Code Online (Sandbox Code Playgroud)

java orm proxy hibernate java-ee

35
推荐指数
7
解决办法
4万
查看次数

J2EE中的容器究竟是什么?它有何帮助?

我现在正在阅读J2EE 1.4规范,有很多我不明白的术语.这是来自容器的规格:

容器为J2EE应用程序组件提供运行时支持.容器为应用程序组件提供底层J2EE API的联合视图.J2EE应用程序组件从不与其他J2EE应用程序组件直接交互.他们使用容器的协议和方法相互交互并与平台服务进行交互.在应用程序组件和J2EE服务之间插入容器允许容器透明地注入由组件的部署描述符定义的服务,例如声明式事务管理,安全性检查,资源池和状态管理.

由于我来自Web开发世界,我无法理解,这究竟是做什么的,以及容器的用途是什么.提供运行时支持是什么意思?它如何使J2EE在术语或可扩展性方面成为更好的系统?

java java-ee

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