小编Mic*_* W.的帖子

JUnit - assertSame

当有人使用值> 127时,有人能告诉我为什么assertSame()会失败吗?

        import static org.junit.Assert.*;

        ...

        @Test
        public void StationTest1() {
          ..

          assertSame(4, 4);         // OK
          assertSame(10, 10);       // OK
          assertSame(100, 100);     // OK
          assertSame(127, 127);     // OK
          assertSame(128, 128);           // raises an junit.framework.AssertionFailedError!
          assertSame(((int) 128),((int) 128)); // also junit.framework.AssertionFailedError!
        }
Run Code Online (Sandbox Code Playgroud)

我正在使用JUnit 4.8.1.

java junit unit-testing junit4

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

如何为JNDI Lookup配置模块和应用程序名称

在EJB 3.1中,JNDI Lookup可以使用不同的Lookup-Names:

java:global[/<app-name>]/<module-name>/<bean-name>!<fully-qualifiedbean interface-name>           
java:global[/<app-name>]/<module-name>/<bean-name> 
java:app/<module-name>/<bean-name>!<fully-qualified-bean-interface-name> 
java:app/<module-name>/<bean-name> 
java:module/<bean-name>!<fully-qualified-bean-interface-name> 
java:module/<bean-name>
Run Code Online (Sandbox Code Playgroud)

在我的JavaEE 6项目中(使用Maven 2,Netbeans 6和Glassfish v3),应用程序名称为X-Snapshot.ear,EJB-Module为Y-Snapshot.jar.如何配置此maven项目以使用其他应用程序和模块名称?当这个名字改变时,我不想改变所有的JNDI Lookup!那么可以为JNDI LookUps配置应用程序和模块名称吗?

maven-2 jndi glassfish java-ee java-ee-6

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

JavaEE 6应用程序(Glassfish v3)中的性能 - 日志记录,DI,数据库操作,EJB,托管Bean

我使用的重要技术有:Glassfish v3,JSF 2.0,JPA 2.0,EclipseLink 2.0.2,log4j 1.2.16,commons-logging 1.1.1.

我的问题是应用程序的某些部分非常慢.我用netbeans 6.8分析功能对此进行了分析.

I.记录 - 我使用log4j和apache commons记录在日志记录文件和控制台中生成日志.日志也出现在glassfish的服务器日志中.我使用记录器如下:

    private static Log logger = LogFactory.getLog(X.class);
    ...
    if (logger.isDebugEnabled()) {
        ...
        logger.debug("Log...");
    }
Run Code Online (Sandbox Code Playgroud)

问题是,有时这样的短语需要花费很多时间(大约800毫秒).当我切换到java.util.logging时,它不是那么糟糕但也很慢(200毫秒乐队).有什么问题?我需要一些日志记录... 更新 - 从Netbeans 6.8切换到Netbeans 6.9.1后解决了慢速日志记录的问题. - 当日志打印到其控制台时,Netbeans 6.8可能非常慢?!所以它与Log4J或公​​共记录没有任何关系.

II.数据库操作:我第一次调用以下EJB的find方法需要2,4秒!其他呼叫仅持续几毫秒.那么为什么第一次手术需要很长时间?这是(仅仅因为)连接建立还是与XFacade的依赖注入有关,以及这些注射何时执行?:

@Stateless
@PermitAll
public class XFacade {
    @PersistenceContext(unitName = "de.x.persistenceUnit")
    private EntityManager em;
    // Other DI's
    ...

    public List<News> find(int maxResults) {
      return em.createQuery(
      "SELECT n FROM News n ORDER BY n.published DESC").setMaxResults(maxResults).getResultList() 
    }
}
Run Code Online (Sandbox Code Playgroud)

III.依赖注入,JNDI查找:DI之间是否存在差异(@EJB ...)和关注性能的InitialContext查找?注入本地,远程和无接口EJB之间是否存在差异(性能视图)?

IV.托管豆 …

performance logging java-ee java-ee-6 glassfish-3

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