标签: java-ee-6

映射,绑定和解析之间有什么区别?

我开始在java EE6中学习Web服务.

我之前做过Web开发,但从来没有与Web服务有任何关系.

对我来说一切都是新的,我在网上找到的书籍和教程都是技术性的.

我开始学习.xsd架构和.xml.

在那个主题中我感到自信,我理解用于什么模式和验证意味着什么.

现在我的下一步是学习JAX-B(用于XML绑定的Java Api).我骑了一些关于它,我也在我的IDE中做了一些练习.但是我有很多基本的疑虑,这让我陷入困境,无法继续下一个话题.

如果有人能够很好地解释我的怀疑,我会感激不尽:

  1. 它是什么意思映射和什么是映射工具?
  2. 什么是绑定和什么是绑定工具?
  3. 解析什么是解析工具?
  4. JAX-B如何与映射,绑定和解析相关?

我正在寻找一个由你建立的好答案,而不仅仅是谷歌的复制粘贴(我已经在网上几个小时而且只是感到困惑).

java web-services jax-rs jaxb java-ee-6

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

如何从应用程序客户端连接远程EJB模块

我在计算机中的远程Glassfish服务器和应用程序客户端中有一个EJB模块.我想从应用程序客户端连接到远程EJB.

这是我的EJB接口:

@Remote
public interface BookEJBRemote
{
    public String getTitle();
}
Run Code Online (Sandbox Code Playgroud)

这是我的ejb:

@Stateless
public class BookEJB implements BookEJBRemote
{

    @Override
    public String getTitle()
    {
        return "Twenty Thousand Leagues Under the Sea";
    }
}
Run Code Online (Sandbox Code Playgroud)

我有几个问题:

  1. 我可以在远程应用程序客户端中使用依赖注入来连接到ejb吗?如果是这样,我该怎么做才能实现这一目标.我是否需要在sun-ejb-jar.xml和sun-application-client.xml中进行配置?换句话说,如果我像@EJB BookEJBRemote书那样使用依赖注入; 应用程序客户端容器如何知道要注入的ejb?我应该在哪里指定信息?
  2. 我该如何运行应用程序客户端?我试图在glassfish服务器中运行package-appclient来获取appclient.jar并将其复制到我的计算机上.然后我输入appclient.jar -client myAppClient.jar.它没用.我如何指向目标服务器?
  3. 如果我不能在客户端使用依赖注入,那么我想我必须使用JNDI查找.我是否需要在sun-ejb-jar.xml或sun-application-client.xml中配置jndi名称?

无论我如何尝试,我从未设法运行应用程序客户端?你们能举一些工作的例子吗?谢谢你的每一个建议和例子?

java netbeans java-ee java-ee-6

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

Java EE 6:@Inject和Instance <T>

我对@Injectjava ee 6中的注释有疑问:

有什么区别:

@Inject
private TestBean test;

@Inject
private Instance<TestBean> test2;
Run Code Online (Sandbox Code Playgroud)

要参考:

test2.get();
Run Code Online (Sandbox Code Playgroud)

关于Instance的一些信息:http://docs.oracle.com/javaee/6/api/javax/enterprise/inject/Instance.html

也许在get()调用之前它不会创建对象?我只是想知道哪一个更适合jvm内存.我认为direct @Inject会直接创建一个对象的实例,即使它没有被appplication使用...

谢谢 !

dependency-injection ejb javabeans cdi java-ee-6

14
推荐指数
2
解决办法
7613
查看次数

简单来说,有人可以向我解释JAAS,JACC和JASPIC之间的区别吗?

我会说实话.我一直是开发人员已经有一段时间了,但这是我第一次听说JACC和JASPIC.我知道它们是授权提供商使用的标准,但它们与JAAS有何不同?我们何时会使用一个而不是另一个?

我做了一些初步的研究,并不是说我很懒.只是关于JACC和JASPIC的阅读文章有点让我不知所措,我需要在短时间内了解这一点,因为我需要在我即将开展的一个项目中实现这一点.只是在我对它的理解上寻找一个快速的开始.

jaas java-ee java-ee-6 jaspic jacc

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

EJB 3.1 @EJB注入POJO

今天下午成为一个完整的大菱鲆,似乎无法在任何地方找到答案.

使用新的EJB 3.1规范是否可以将EJB注入pojo?我知道在EJB 3.0中,@ EJB注释可用于注入EJB,但这不适用于简单的pojos.

如果不是,我必须在JNDI中查看bean,因为我知道你不能简单地使用new关键字.

提前致谢.

卡尔

java ejb java-ee-6 ejb-3.1

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

无法实例化javax.servlet.ServletException

我正在尝试使用以下代码创建类javax.servlet.ServletException的实例

public class MyTroubleViewer {
 public static void main(String[] args) {
  javax.servlet.ServletException servletException = new javax.servlet.ServletException("Hello");
  System.out.println(servletException.getMessage());
 }
}
Run Code Online (Sandbox Code Playgroud)

但我在创建时遇到异常:

Exception in thread "main" java.lang.ClassFormatError: Absent Code attribute in method that is not native or abstract in class file javax/servlet/ServletException
...
Run Code Online (Sandbox Code Playgroud)

Maven帮助我依赖:

<dependency>
 <groupId>javax</groupId>
 <artifactId>javaee-api</artifactId>
 <version>6.0</version>
 <type>jar</type>
 <scope>compile</scope>
</dependency>
Run Code Online (Sandbox Code Playgroud)

我究竟做错了什么?

java maven-2 servlets java-ee java-ee-6

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

Java EE 6 CDI事件是事务性的吗?

Java EE 6 CDI事件是事务性的吗?

如果我在事务中触发事件,然后回滚事务,那么事件侦听器的效果是否也会回滚?

此行为是否依赖于支持事务的事件侦听器本身?

如果我尝试从事件监听器内部回滚异常,那么它是否回滚触发事件的事务?

transactions cdi java-ee-6

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

"org.hibernate.DuplicateMappingException"错误是什么意思?

我试图强制JPA/Hibernate生成并只使用小写的表名.我已经实现了这样的NamingStrategy:

public class MyNamingStrategy extends DefaultNamingStrategy {

  @Override
  public String classToTableName(String className) {
    return super.classToTableName(className).toLowerCase();
  }
}
Run Code Online (Sandbox Code Playgroud)

我通过在persistence.xml中设置此属性来应用它:

<property name="hibernate.ejb.naming_strategy" value="entities.strategy.MyNamingStrategy"/>
Run Code Online (Sandbox Code Playgroud)

当我这样做时,我得到这个堆栈跟踪:

SEVERE: Exception while invoking class org.glassfish.persistence.jpa.JPADeployer prepare method
org.hibernate.DuplicateMappingException: Same physical table name [planning] references several logical table names: [Planning], [OrderProductMan_Planning]
        at org.hibernate.cfg.Configuration$MappingsImpl.addTableBinding(Configuration.java:2629)
        at org.hibernate.cfg.annotations.TableBinder.buildAndFillTable(TableBinder.java:254)
        at org.hibernate.cfg.annotations.TableBinder.bind(TableBinder.java:177)
Run Code Online (Sandbox Code Playgroud)

什么是

相同的物理表名称[planning]引用了多个逻辑表名称:[Planning],[OrderProductMan_Planning]

意思?

来自错误的实体,尽可能简化.如果你需要休息,请告诉我.

@Entity
public class Planning implements Serializable {

  @Id
  @GeneratedValue(strategy = GenerationType.AUTO)
  private Integer id;

  private Integer qty;

  @ManyToOne
  private OrderProductMan orderProduct;

  ....
}


@Entity
@Table
public class …
Run Code Online (Sandbox Code Playgroud)

java hibernate jpa java-ee-6 glassfish-3

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

"@inject"-ed属性保持为null

我试图将一个服务注入我的bean,但它始终是null.我收到以下错误:WELD-001000错误解析属性userBean对基础null.

一些代码片段:

的index.xhtml

<h:body>
    Hello from Facelets
    #{userBean.name}
</h:body>
Run Code Online (Sandbox Code Playgroud)

userbean.java

package beans;

import Domain.User;
import java.io.Serializable;
import javax.enterprise.context.SessionScoped;
import javax.inject.Inject;
import javax.inject.Named;
import service.UserService;

@Named
@SessionScoped
public class UserBean implements Serializable{
    @Inject UserService service;
    private User user;

    public UserBean(){
        this.user = service.find_user("foo");
    }

    public String getName(){
        return "bar";
    }
}
Run Code Online (Sandbox Code Playgroud)

UserService.java

package service;

import Domain.User;
import javax.ejb.Stateless;
import javax.inject.Named;

@Named
@Stateless
public class UserService {
    public UserService(){}

    public User find_user(String name){
        return new User();
    }
}
Run Code Online (Sandbox Code Playgroud)

java dependency-injection javabeans java-ee java-ee-6

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

Tomcat无法处理的Java EE方案

Tomcat仅实现Java Enterprise Edition体系结构的Web容器.相比之下,例如GlassFish实现了完整的Java EE堆栈.这已经在stackoverflow上进行了很多讨论.

但是,对于像我这样的Java EE初学者来说很难想象Tomcat无法做到什么.你能举个简短的例子吗?

jboss tomcat glassfish java-ee java-ee-6

13
推荐指数
2
解决办法
3516
查看次数