小编hyp*_*oad的帖子

为什么TomEE Java EE6已经过认证,但TomEE +没有?

就像标题所说的那样.我对Java EE6认证的内部工作原理知之甚少.但是,似乎TomEE +只是TomEE的超集,那么TomEE +也不应该通过Java EE6认证吗?

我们刚刚决定为我们内部开发的管理应用程序构建Tomcat(而不是使用Glassfish中的许多功能),我对TomEE +非常感兴趣,因为它几乎拥有我们想要的一切.

仅供参考,我们原本只是看Tomcat7,并安装Jersey和Hibernate.

java tomcat7 apache-tomee

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

JAXB或JAX-RS用引号将数字包装在我的JSON响应中,将它们转换为字符串.为什么这是默认行为,以及如何解决它?

我目前正在开发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 jax-rs jaxb

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

如何解决杰克逊无法处理JPA bean中的直接自引用问题

所以我正在使用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 …

java jax-rs jaxb jersey jackson

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

在 Hibernate 中创建 UPDATE RETURNING 查询

在 Oracle 中,我们可以创建一个更新查询,该查询将使用 RETURNING 子句返回更新的记录。

Hibernate 中是否有类似的功能?

java database oracle hibernate

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

为什么整个系统事件采购反模式?

我目前正在设计一个新的企业系统.该系统的目的是跟踪,显示和通知员工与公司的客户交互(即事件).使用事件源模式来保存所收集的所有客户交互/事件的分类帐似乎非常合适,因为我们所有其他域对象都是从事件流派生的.但是,我发现一篇文章说基于事件采购的整个系统是一种反模式.为什么会这样?

https://www.infoq.com/news/2016/04/event-sourcing-anti-pattern

event-sourcing

5
推荐指数
2
解决办法
1256
查看次数

如何为同一内容配置多个 Material UI 徽章

我有一个设计要求,要将多个徽章添加到单个内容中。它似乎不是文档中的支持用例。有人实施过这样的事情吗?我应该如何处理这个问题?

material-ui

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

如何在Inteceptor模式中使用dojo/promise/Promise.cancel()

我期待为特定于应用程序的AJAX控制器实现一个Inteceptor Pattern.

我的应用程序中的任何AJAX请求都会调用Authenticator.request(),它会拦截响应,检查某些状态(例如401,403,503),根据它们执行特定于应用程序的显示功能(如果状态401是,则显示LoginDialog)收到).我的问题源于围绕道场的承诺的混乱.

  1. 如何将成功的请求传递回原始调用方法?
  2. 当我调用dojo.promise.Promise.cancel()时,我希望链接停止.但是,这只是运行errback函数.这意味着需要在调用函数中的每个errback方法中放置逻辑,以区分已取消的请求与错误.

谁能解释一下如何在这种情况下使用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)

javascript dojo

4
推荐指数
1
解决办法
2298
查看次数

调用 bodyParser.json() 后如何使用“express-http-proxy”?

我正在构建一个跨系统管理应用程序,它将用作多个后端系统的管理工具。该应用程序建立在 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就不会被调用?

proxy node.js express meanjs

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

当使用额外的Criteria运行分页查询时,Hibernate Mapping会返回多个相同的对象

所以我一直对此表示不满,似乎无法让它正常工作.

当我使用我的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)

java hibernate jpa

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

将 jar 添加到 Tomcat 服务安装的 lib 文件夹后出现 ClassNotFoundException

我正在尝试更新 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)

java jar class tomcat7

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