标签: java-ee

如何仅使用注释设置JAX-RS应用程序(没有web.xml)?

是否可以仅使用注释设置JAX-RS应用程序?(使用Servlet 3.0和JAX-RS Jersey 1.1.0)

我试过,没有运气.web.xml似乎需要使用一些.


配置A(工作,但具有web.xml配置)

web.xml中

   ...
   <servlet>
      <servlet-name>org.foo.rest.MyApplication</servlet-name>
   </servlet>
   <servlet-mapping>
       <servlet-name>org.foo.rest.MyApplication</servlet-name>
       <url-pattern>/*</url-pattern>
   </servlet-mapping>
   ...
Run Code Online (Sandbox Code Playgroud)

Java的

@ApplicationPath("/")
public class MyApplication extends Application {
    ...
}
Run Code Online (Sandbox Code Playgroud)

配置B(不工作,抛出异常)

@ApplicationPath("/")
@WebServlet("/*") // <-- 
public class MyApplication extends Application {
    ...
}
Run Code Online (Sandbox Code Playgroud)

后者似乎坚持认为Application将是Servlet的子类(例外不会留下任何猜测)

java.lang.ClassCastException: org.foo.rest.MyApplication cannot be cast to javax.servlet.Servlet
Run Code Online (Sandbox Code Playgroud)

问题

  1. 为什么web.xml定义有效,但注释没有?有什么不同?

  2. 有没有办法使它工作,例如有一个没有web.xml的JAX-RS应用程序?

java jax-rs java-ee servlet-3.0

76
推荐指数
4
解决办法
11万
查看次数

JPA:@JoinColumn和@PrimaryKeyJoinColumn之间的区别?

@JoinColumn和之间的确切区别是@PrimaryKeyJoinColumn什么?

@JoinColumn用于属于外键的列.典型的列可能看起来像(例如在具有附加属性的连接表中):

@ManyToOne
@JoinColumn(name = "...")
private OtherClass oc;
Run Code Online (Sandbox Code Playgroud)

如果我将列提升为/ PK(也就是识别关系)会发生什么?由于该列现在是PK,我必须用以下标记来标记@Id:

@Id
@ManyToOne
@JoinColumn(name = "...")
private OtherClass oc;
Run Code Online (Sandbox Code Playgroud)

现在的问题是:

@Id+ @JoinColumn只是一样@PrimaryKeyJoinColumn吗?:

@ManyToOne
@PrimaryKeyJoinColumn(name = "...")
private OtherClass oc;
Run Code Online (Sandbox Code Playgroud)

如果没有,那@PrimaryKeyJoinColumn有什么用?

java hibernate jpa java-ee identifying-relationship

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

JPA Multiple Embedded字段

JPA实体类是否可以包含两个嵌入(@Embedded)字段?一个例子是:

@Entity
public class Person {
    @Embedded
    public Address home;

    @Embedded
    public Address work;
}

public class Address {
    public String street;
    ...
}
Run Code Online (Sandbox Code Playgroud)

在这种情况下,一个Person可以包含两个Address实例 - 家庭和工作.我正在使用JPA和Hibernate的实现.当我使用Hibernate Tools生成模式时,它只嵌入一个Address.我想要的是两个嵌入式Address实例,每个实例的列名都有区别或预先设置了一些前缀(例如家庭和工作).我知道@AttributeOverrides,但这要求每个属性都被单独覆盖.如果嵌入的object(Address)变大,因为每个列需要单独重写,这会很麻烦.

java hibernate jpa java-ee

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

EJB 3.1 @LocalBean与没有注释

我理解本地视图,远程视图和无界面视图之间的区别.我只是不明白"无视图"(无注释)和无界面视图之间的区别.还有为什么我要用我的界面注释@Local?如果我根本不对界面进行注释会有什么不同呢?

java ejb java-ee

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

在实体中使用Enum时进行查询的问题

我在Question实体中有以下内容:

@NamedQuery(name = "Question.allApproved",
    query = "SELECT q FROM Question q WHERE q.status = 'APPROVED'")
Run Code Online (Sandbox Code Playgroud)

@Enumerated(EnumType.STRING)
private Status status;

// usual accessors
Run Code Online (Sandbox Code Playgroud)

我得到这个例外:

异常说明:编译查询时出错[Question.countApproved:SELECT COUNT(q) FROM Question q WHERE q.status = 'APPROVED'],第1行,第47列:无效的枚举等于表达式,无法将类型 [myCompnay.application.Status]的枚举值与非枚举值类型进行比较[java.lang.String].at org.eclipse.persistence.internal.jpa.EntityManagerSetupImpl.deploy(EntityManagerSetupImpl.java:501)

我该如何解决?

java jpa java-ee

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

将EJB注入JAX-RS(RESTful服务)

我正在尝试通过注释将无状态EJB注入我的JAX-RS Web服务.不幸的是,EJB是公正的null,NullPointerException当我尝试使用它时,我得到了它.

@Path("book")
public class BookResource {

    @EJB
    private BookEJB bookEJB;

    public BookResource() {
    }

    @GET
    @Produces("application/xml")
    @Path("/{bookId}")
    public Book getBookById(@PathParam("bookId") Integer id)
    {
        return bookEJB.findById(id);
    }
}
Run Code Online (Sandbox Code Playgroud)

我究竟做错了什么?

以下是有关我的机器的一些信息:

  • Glassfish 3.1
  • Netbeans 6.9 RC 2
  • Java EE 6

你们能展示一些有用的例子吗?

java rest ejb jax-rs java-ee

70
推荐指数
4
解决办法
8万
查看次数

多态性的好处

当我开始寻找多态性的好处时,我在这里找到了这个问题.但在这里我无法找到答案.让我告诉我想找到什么.这里我有一些课程:

class CoolingMachines{
    public void startMachine(){
        //No implementationion
    }
    public void stopMachine(){
        //No implementationion
    }
}

class Refrigerator extends CoolingMachines{
    public void startMachine(){
        System.out.println("Refrigerator Starts");
    }
    public void stopMachine(){
        System.out.println("Refrigerator Stop");
    }
    public void trip(){
        System.out.println("Refrigerator Trip");
    }
}

class AirConditioner extends CoolingMachines{
    public void startMachine(){
        System.out.println("AC Starts");
    }
    public void stopMachine(){
        System.out.println("AC Stop");
    }
}

public class PolymorphismDemo {
    CoolingMachines cm = new Refrigerator();
    Refrigerator rf = new Refrigerator();
}
Run Code Online (Sandbox Code Playgroud)

现在我在Demo类中创建了两个对象,并且是对它的引用Refrigerator.我完全理解从rf对象我可以调用trip()方法 …

java oop polymorphism java-ee

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

persistence.xml不同的事务类型属性

在persistence.xml JPA配置文件中,您可以使用如下行:

<persistence-unit name="com.nz_war_1.0-SNAPSHOTPU" transaction-type="JTA">
Run Code Online (Sandbox Code Playgroud)

或有时:

<persistence-unit name="com.nz_war_1.0-SNAPSHOTPU" transaction-type=”RESOURCE_LOCAL”>
Run Code Online (Sandbox Code Playgroud)

我的问题是:

transaction-type="JTA"和之间有什么区别transaction-type=”RESOURCE_LOCAL”

我还注意到一些缺少事务类型的persistence.xml文件.这是对的吗?

java jpa jta persistence.xml java-ee

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

Hibernate,iBatis,Java EE或其他Java ORM工具

我们正在规划一个大型企业应用程序.在经历了J2EE的痛苦之后,我们将重点放在评估hibernate上.

看起来新的Java EE API更简单.我还读了一些关于Hibernate和iBatis的好东西.我们的团队对任何框架都缺乏经验.

我想确定5个主要的比较点

  • 学习曲线/易用性
  • 生产率
  • 可维护性/稳定性
  • 性能/可扩展性
  • 易于故障排除

如果您要管理一个由具有J2EE经验的约6位开发人员组成的团队,您将使用哪种ORM工具?为什么?

java orm hibernate ibatis java-ee

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

如何将map转换为url查询字符串?

你知道任何实用程序类/库,可以将Map转换为URL友好的查询字符串吗?

示例:
我有一张地图:
- "param1"= 12,
- "param2"="cat"

我想得到:__CODE__.

PS.我知道我可以轻松地自己编写,我很惊讶我无法在任何地方找到它(我到目前为止检查了Apache Commons).

java utilities java-ee

66
推荐指数
10
解决办法
11万
查看次数