EJB的用途是什么

我目前正在学习Jave-EE,拥有丰富的C ++经验并且学过Java SE。 我不明白Enterprise Java Beans的目的; 谁能为我澄清这一点。 我对遗留用途不感兴趣:这是在EJB-3.1和Java-EE 6的上下文中。 似乎有些人使用它们来包含业务逻辑,用于实现传统3层架构的业务层。 这将域逻辑与域对象分开,导致贫血域模型 。 但这违背了我所有的OOD本能; 我同意Martin Fowler认为这是一种反模式 。 我是否应该放松对贫血领域模型的反对意见? 或者EJB有其他用途吗?

Eclipse中exception的断点 – 如何检查Exception对象?

我觉得我在这里错过了很简单的东西。 我设置了Eclipse来打破所有exception。 所以,假设它在AssertationFailedException上中断。 Debug窗口将显示该线程已挂起并具有以下数据: Thread [Thread-1](Suspended(exceptionAssertionFailedException))ContactManager.addContact(String)行:93 ContactManager $ ContactDataCallback.dispatch(String,Element,ClientConnector)行:118 PacketHandler.handle(FractusPacket)行:173 ServerConnection.syncProcess( FractusMessage)行:122 ServerConnection.run()行:248 Thread.run()行:636 但是,我正在寻找的文本,例如:“Getter在可观察的org.eclipse.core.databinding.observable.set.WritableSet@4b7361e2外部调用”,直到我逐步执行exception(因此传播)才可用它一直向上堆栈)它输出exception的类型,文本(这是我想要的部分)和堆栈跟踪。 如何检查“AssertationFailedException”(或任何其他exception)以获取构造exception的消息? 当然我在Debug透视图中。

在JPQL中有这样的CASE表达吗?

假设有一张表: TableA:Field1, Field2, Field3 和相关的JPA实体类 @Entity @Table(name=”TableA”) public class TableA{ @Id @Column(name=”Field1″) private Long id; @Column(name=”Field2″) private Long field2; @Column(name=”Field3″) private Long field3; //… more associated getter and setter… } 有没有办法构造一个松散地翻译成这个SQL的JPQL语句,即如何将case表达式翻译成JPQL? select field1, case when field2 = 1 then ‘One’ when field2 = 2 then ‘Two’ else ‘Other number’ end, field3 from tableA;

在Java中的Mergesort

我是Java新手,并尝试在Java中实现mergesort。 但是,即使多次运行程序,而不是所需的排序输出,我得到相同的用户输入作为输出。 如果有人能帮助我理解这种意想不到的行为,我将感激不尽。 import java.io.*; import java.util.Arrays; public class MergeSort { public static void main(String[] args) throws IOException{ BufferedReader R = new BufferedReader(new InputStreamReader(System.in)); int arraySize = Integer.parseInt(R.readLine()); int[] inputArray = new int[arraySize]; for (int i = 0; i < arraySize; i++) { inputArray[i] = Integer.parseInt(R.readLine()); } mergeSort(inputArray); for (int j = 0; j 1) […]

在其模块中访问Guice注入器?

我正在扩展Guice的AbstractModule ,在扩展类中,我需要访问Guice的注入器。 这可能,如果是的话,怎么样?

如何在Java中使用正则表达式找到确切的单词?

请考虑以下代码段: String input = “Print this”; System.out.println(input.matches(“\\bthis\\b”)); 产量 false 这种方法可能有什么问题? 如果它是错的,那么找到确切的单词匹配的正确解决方案是什么? PS:我在这里发现了各种类似的问题,但没有一个能提供我想要的解决方案。 提前致谢。

单独螺纹中的Acclerometer传感器

我将数据从Accelerometer Sensor保存到数据库,但我想在单独的线程中进行。 我试图在互联网上搜索它,但大多数使用相同的线程。 请帮忙。 我试过的事情:1) SenSorEventListener sel; Thread A=new Thread(){ public void run() { sel=new SensorEventListener() { @Override public void onSensorChanged(SensorEvent event) { // TODO Auto-generated method stub double Acceleration,x,y,z; x=event.values[0]; y=event.values[2]; z=event.values[2]; Acceleration=Math.sqrt(x*x+y*y+z*z); db.addAccel(Acceleration); Log.d(“MESSAGE”,”SAVED”); } @Override public void onAccuracyChanged(Sensor sensor, int accuracy) { // TODO Auto-generated method stub } }; } }; A.start(); […]

使用Spring的动态表单更好的方法?

我想知道在使用SpringMVC和Spring表单时是否有更简单/更好的方法来处理动态表单(通过js向dom添加表单项)? 具有Invoice对象的成像具有许多LineItem。 public class Invocie { private List LineItems; public Invoice() { lineItems = ListUtils.lazyList(new ArrayList(), FactoryUtils.instantiateFactory(LineItem.class)); } } 显示属于当前使用的发票的项目 要添加LineItems,我有一些js计算新索引并将其添加到DOM。 删除LineItem时,我当前必须重新编号所有索引,这是我想避免的部分,是否可能?

静态方法及其重写

Java不允许覆盖静态方法,但是, class stat13 { static void show() { System.out.println(“Static in base”); } public static void main(String[] ar) { new next().show(); } } class next extends stat13 { static void show() { System.out.println(“Static in derived”); } } 这里没有压倒一切吗?

如何在java web应用程序中将byte 作为pdf发送到浏览器?

在动作方法(JSF)中我有类似下面的内容: public String getFile() { byte[] pdfData = … // how to return byte[] as file to web browser user ? } 如何将byte []作为pdf发送到浏览器?