我开始在java EE6中学习Web服务.
我之前做过Web开发,但从来没有与Web服务有任何关系.
对我来说一切都是新的,我在网上找到的书籍和教程都是技术性的.
我开始学习.xsd架构和.xml.
在那个主题中我感到自信,我理解用于什么模式和验证意味着什么.
现在我的下一步是学习JAX-B(用于XML绑定的Java Api).我骑了一些关于它,我也在我的IDE中做了一些练习.但是我有很多基本的疑虑,这让我陷入困境,无法继续下一个话题.
如果有人能够很好地解释我的怀疑,我会感激不尽:
我正在寻找一个由你建立的好答案,而不仅仅是谷歌的复制粘贴(我已经在网上几个小时而且只是感到困惑).
我在计算机中的远程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)
我有几个问题:
无论我如何尝试,我从未设法运行应用程序客户端?你们能举一些工作的例子吗?谢谢你的每一个建议和例子?
我对@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使用...
谢谢 !
我会说实话.我一直是开发人员已经有一段时间了,但这是我第一次听说JACC和JASPIC.我知道它们是授权提供商使用的标准,但它们与JAAS有何不同?我们何时会使用一个而不是另一个?
我做了一些初步的研究,并不是说我很懒.只是关于JACC和JASPIC的阅读文章有点让我不知所措,我需要在短时间内了解这一点,因为我需要在我即将开展的一个项目中实现这一点.只是在我对它的理解上寻找一个快速的开始.
今天下午成为一个完整的大菱鲆,似乎无法在任何地方找到答案.
使用新的EJB 3.1规范是否可以将EJB注入pojo?我知道在EJB 3.0中,@ EJB注释可用于注入EJB,但这不适用于简单的pojos.
如果不是,我必须在JNDI中查看bean,因为我知道你不能简单地使用new关键字.
提前致谢.
卡尔
我正在尝试使用以下代码创建类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 EE 6 CDI事件是事务性的吗?
如果我在事务中触发事件,然后回滚事务,那么事件侦听器的效果是否也会回滚?
此行为是否依赖于支持事务的事件侦听器本身?
如果我尝试从事件监听器内部回滚异常,那么它是否回滚触发事件的事务?
我试图强制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) 我试图将一个服务注入我的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)