小编str*_*ine的帖子

"jta-datasource"和"resource-local"数据源之间的区别?

术语"jta-datasource"和"resource-local datasource"对我来说有点模糊.我正在放下我理解(或假设)的内容,我希望你能说出我对错的地方.

  • 相同的数据库可以称为jta-datasource或资源本地数据源
  • 如果提到jta-datasource,则bean /其他类可以使用JTA.因此,UserTransaction接口
  • 如果数据源是本地资源,则无法使用CMT/BMT
  • 如果提到资源本地数据源,则事务不能识别JTA.代码可以使用EntityTransaction接口,但不能使用UserTransaction接口

谢谢!

java jpa jta java-ee ejb-3.0

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

是否可以通过编程方式抛出NullPointerException?

当有后置条件时,方法的返回值不能为空,可以做什么?

我可以

assert returnValue != null : "Not acceptable null value";
Run Code Online (Sandbox Code Playgroud)

断言可以关闭!

所以可以这样做

if(returnValue==null)
      {
           throw new NullPointerException("return value is null at method AAA");
      }
Run Code Online (Sandbox Code Playgroud)

或者,对于这样的条件,使用用户定义的异常(如NullReturnValueException)会更好吗?

java exception-handling nullpointerexception throw

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

我可以在没有任何断言的情况下编写测试吗?

我想知道在没有任何"断言"的情况下编写测试是否"正常".因此,只有在发生异常/错误时,测试才会失败.

例如:像具有简单选择查询的测试一样,以确保数据库配置正确.因此,当我更改某些db-configuration时,我会重新运行此测试并检查配置是否正确.?

谢谢!

java junit unit-testing assert

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

SessionContext.getBusinessObject()的返回值与bean中使用的'this'关键字有何不同?

SessionContext.getBusinessObject()在文档中描述如下,

获取可用于通过给定业务接口调用当前bean的对象.

参数:businessInterface - 此会话Bean的本地业务接口或远程业务接口之一.

返回:与给定业务接口对应的业务对象.

我不能在Java中使用'this'关键字来实现相同的目标吗?这些有何不同?

java ejb-3.0

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

EJB 3 中的 @Local 注释

我有一个无状态会话 bean 和一个作为客户端的独立 Java 程序。当接口被标记为@Remote 时,bean 方法执行得很好。但是,当我用 @Local 而不是 @Remote 标记该接口时,我得到以下异常。

 [java] javax.naming.NamingException: Could not dereference object [Root exception is java.lang.RuntimeException: Could not find InvokerLocator URL at JNDIaddress "chapter1/HelloUserBean/local"; looking up local Proxy from Remote JVM?]
Run Code Online (Sandbox Code Playgroud)

但我希望即使是后者也能工作,因为它是执行代码的同一台计算机。

看到这种行为,我假设 Application-Server 和 Standalone-Java-Program 使用不同的 JVM 实例而不是单个 JVM 实例,因此该客户端只能通过远程接口访问。

这个假设正确吗?

谢谢 !

java ejb-3.0

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

JUnit - 测试一个方法,该方法又调用了一些方法

这是我对单元测试时我们视为"单位"的疑问.

说我有这样的方法,

public String myBigMethod()
      {
         String resultOne = moduleOneObject.someOperation(); 
         String resultTwo = moduleTwoObject.someOtherOperation(resultOne);
         return resultTwo;
      }
Run Code Online (Sandbox Code Playgroud)

(我为someOperation()和someOtherOperation()单独编写了单元测试

这个myBigMethod()有点像上面那样使用它们集成了ModuleOne和ModuleTwo,

那么,方法"myBigMethod()"仍被视为"单位"吗?

我应该为这个"myBigMethod()"写一个测试吗?

假设我已经为myBigMethod()写了一个测试...如果testSomeOperation()失败,它也会导致testMyBigMethod()失败......现在testMyBigMethod()的失败可能会显示一个不太正确的位置错误.

导致两次测试失败的原因对我来说并不是那么好看.但是,如果有更好的方法,不要...?在那儿 ?

谢谢 !

junit unit-testing

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