就像标题所说的那样.我对Java EE6认证的内部工作原理知之甚少.但是,似乎TomEE +只是TomEE的超集,那么TomEE +也不应该通过Java EE6认证吗?
我们刚刚决定为我们内部开发的管理应用程序构建Tomcat(而不是使用Glassfish中的许多功能),我对TomEE +非常感兴趣,因为它几乎拥有我们想要的一切.
仅供参考,我们原本只是看Tomcat7,并安装Jersey和Hibernate.
我目前正在开发RESTful API.我有一个Employee类和一个EmployeeResource类.我还有一个自定义DateAdapter,它将我的Date属性更改为Long时间戳.但是,我的JSON响应将时间戳显示为字符串(用双引号括起来)而不是数字(不带双引号).这是我的代码的缩写版本和捕获的JSON响应...
自定义DateAdapter
public class DateAdapter extends XmlAdapter<Long, Date> {
@Override
public Date unmarshal(Long v) throws Exception {
return new Date(Long.valueOf(v));
}
@Override
public Long marshal(Date v) throws Exception {
return v.getTime();
}
}
Run Code Online (Sandbox Code Playgroud)
实体类
@Entity
@javax.xml.bind.annotation.XmlRootElement
@XmlType(propOrder={"createdOn","empId"})
public class Employee implements Serializable {
private Date createdOn;
private Integer empId;
@Column(nullable=false)
@Temporal(TemporalType.TIMESTAMP)
@XmlJavaTypeAdapter(DateAdapter.class)
public Date getCreatedOn() {
return createdOn;
}
public void setCreatedOn(Date createdOn) {
this.createdOn = createdOn;
}
@Id
@XmlID
public Integer getEmpId() {
return empId;
}
public void …Run Code Online (Sandbox Code Playgroud) 所以我正在使用Java,Hibernate,JPA注释,JAX-RS注释,JAXB注释,Jersey和Jackson JSON解析器开发RESTful数据API.
在尝试了Jersey提供的MAPPING和NATURAL JSON符号的各种配置后,我最终决定使用Jackson JSON解析器.除了这一个问题,杰克逊将是完美的......
我遇到的问题是Jackson没有使用JAXB注释"@XmlID"和"@XmlIDREF",我用它来表示我的实体关系,虽然"@JsonBackReference"和"@JsonManagedReference"帮助这个.在处理直接自引用属性时,这种组合似乎会崩溃.
这似乎是一个相当普遍的问题.你怎么能和杰克逊一起绕过这个限制?
以我的POJO为......
@XmlRootElement
public class Employee implements Serializable {
private Date lastUpdatedOn;
private Employee lastUpdatedBy;
private Integer empId;
@JoinColumn(nullable=false)
@OneToOne
@XmlIDREF
public Employee getLastUpdatedBy() {
return createdBy;
}
public void setLastUpdatedBy(Employee lastUpdatedBy) {
this.lastUpdatedBy = lastUpdatedBy;
}
@Temporal(TemporalType.TIMESTAMP)
public Date getLastUpdatedOn() {
return createdOn;
}
public void setLastUpdatedOn(Date lastUpdatedOn) {
this.lastUpdatedOn = lastUpdatedOn;
}
@XmlID
@XmlJavaTypeAdapter(IntegerAdapter.class)
public Integer getEmpId() {
return empId;
}
public void setEmpId(Integer empId) {
this.empId = empId;
}
}
Run Code Online (Sandbox Code Playgroud)
......以及以下EmployeeResource …
在 Oracle 中,我们可以创建一个更新查询,该查询将使用 RETURNING 子句返回更新的记录。
Hibernate 中是否有类似的功能?
我目前正在设计一个新的企业系统.该系统的目的是跟踪,显示和通知员工与公司的客户交互(即事件).使用事件源模式来保存所收集的所有客户交互/事件的分类帐似乎非常合适,因为我们所有其他域对象都是从事件流派生的.但是,我发现一篇文章说基于事件采购的整个系统是一种反模式.为什么会这样?
https://www.infoq.com/news/2016/04/event-sourcing-anti-pattern
我有一个设计要求,要将多个徽章添加到单个内容中。它似乎不是文档中的支持用例。有人实施过这样的事情吗?我应该如何处理这个问题?
我期待为特定于应用程序的AJAX控制器实现一个Inteceptor Pattern.
我的应用程序中的任何AJAX请求都会调用Authenticator.request(),它会拦截响应,检查某些状态(例如401,403,503),根据它们执行特定于应用程序的显示功能(如果状态401是,则显示LoginDialog)收到).我的问题源于围绕道场的承诺的混乱.
谁能解释一下如何在这种情况下使用Promise?
提前致谢!
这是我认为我可以做的一个例子......
require(["dojo/request"], function(request){
auth = {
request: function() {
var promise = request(arguments);
return promise.always(function (response) {
console.log("always called", response);
switch (response.response.status)
{
case 404:
console.log(404, response);
return "cancelled";
break;
}
});
}
};
});
auth.request('example.json').then(function(text){ console.log('success!', text) }, function(error){
console.log('error!', error);
});
Run Code Online (Sandbox Code Playgroud)
如果这有助于将来的任何人,这是我最终实现的(基于戴夫的答案)......
require(["dojo/request", "dojo/errors/CancelError"], function(dRequest, CancelError){
auth = {
request: function(url, options) {
var promise = dRequest(url, options);
return promise.response.then(
function (response) {
return response;
},
function (error) {
var error, …Run Code Online (Sandbox Code Playgroud) 我正在构建一个跨系统管理应用程序,它将用作多个后端系统的管理工具。该应用程序建立在 Mean.js 之上。
我已经/proxy使用“express-http-proxy”设置了一个路由,将所有子路由发送到它们各自的后端系统端点。但是,在“express-http-proxy”可以继续之前,我需要在我的管理应用程序中对每个请求进行身份验证,然后使用目标后端系统凭据进行修饰。这是我的/proxy路线的一个例子......
app.use('/proxy', users.requiresLogin, expressHttpProxy(config.backendSystem.host, {
forwardPath: function (req) {
return '/1.0' + require('url').parse(req.url).path;
},
decorateRequest: function (req) {
req.headers['content-type'] = 'application/json';
req.headers['backend-system-id'] = config.backendSystem.id;
req.headers['backend-system-key'] = config.backendSystem.key;
return req;
}
}));
Run Code Online (Sandbox Code Playgroud)
注意:
当前 backendSystem 凭据是根据我的管理应用程序运行的环境存储的。但是,将来 backendSystem 凭据将由用户指定,并且此/proxy路由将与当前显示的不同。
问题:
需要请求正文中的数据的代理路由不起作用。
例如POST /comments {"user": user_id, "text": "rabble rabble rabble"}
我发现了什么:
bodyParser.json()和“express-https-proxy”不太好。我已经通过bodyParser.json()从express.js. 然而,这不是一个完整的解决方案,因为几乎所有的其他路线的需要bodyParser.json,例如/auth/signin。
有没有人有一种干净的方法可以让我的路线例外,/proxy这样bodyParser.json就不会被调用?
所以我一直对此表示不满,似乎无法让它正常工作.
当我使用我的HibernateUtil.get(clazz,pkId)方法时,事情似乎工作得很好,但是当我尝试使用HibernateUtil.pagedQuery(clazz,criteria,start,stop)时,我得到了多个返回的相同对象.
例如,如果有3名员工分配给角色1,那么运行...
Role role = HibernateUtil.get(Role.class, new Integer(1));
Run Code Online (Sandbox Code Playgroud)
......按预期工作.但是,如果我跑......
List<Criterion> c = new ArrayList();
c.add(Restrictions.eq("roleTypeSeqNo", new Integer(1)));
List<Role> roles = (List<Role>) phi.util.hibernate.HibernateUtil.pagedQuery(Role.class, c, 0, 50);
Run Code Online (Sandbox Code Playgroud)
...返回3个相同角色的列表.所有这些都代表了角色1.
如果有人可以指导我走正确的道路,我会非常感激.
提前致谢!
这是我的课程的缩写版本
@Entity
@Table(name="ASSIGNMENTS")
public class Assignment implements Serializable {
@EmbeddedId
private AssignmentPK pk;
// After coming across many errors I finally caved and reverted roleTypeSeqNo back to just an Integer.
private Integer roleTypeSeqNo;
private String status;
private String location;
}
@Embeddable
public class AssignmentPK implements Serializable { …Run Code Online (Sandbox Code Playgroud) 我正在尝试更新 Web 应用程序以使用 DBCP。事情在本地运行良好(Windows 安装上的典型 Tomcat)。但是,在 DEV 服务器(EC2 LINUX AMI;Tomcat 即服务)上,我得到以下信息
Could not create resource factory instance [Root exception is java.lang.ClassNotFoundException: org.apache.tomcat.dbcp.dbcp.BasicDataSourceFactory]
Run Code Online (Sandbox Code Playgroud)
我已将范围缩小(我认为)到/lib最初没有tomcat-jdbc.ja.
我已经添加了这个 jar,并使用以下命令重新启动了 Tomcat 实例......
sudo service tomcat7 restart
Run Code Online (Sandbox Code Playgroud)
但是,我仍然得到相同的 ClassNotFoundException。如何让 Tomcat 服务识别tomcat-dbcp.jar?
编辑 - 这是运行后的堆栈跟踪 sudo service tomcat7 start
Jan 20, 2014 5:30:35 PM org.apache.catalina.startup.ClassLoaderFactory validateFile
WARNING: Problem with JAR file [/usr/share/java/tomcat7/log4j.jar], exists: [false], canRead: [false]
Jan 20, 2014 5:30:35 PM org.apache.catalina.startup.ClassLoaderFactory validateFile
WARNING: Problem with JAR file [/usr/share/java/tomcat7/log4j.jar], exists: [false], …Run Code Online (Sandbox Code Playgroud)