- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
您好,我在尝试向 JAX-RS 服务POST
xml 消息时收到上述警告。我的代码如下:
实体:
@Entity(name = "rbac_group")
@NamedQueries({
@NamedQuery(name = "Group.findById", query = "SELECT g FROM rbac_group g WHERE g.id = :id")
})
@XmlRootElement
@XmlAccessorType(XmlAccessType.FIELD)
public class Group implements Serializable {
private static final long serialVersionUID = 1L;
@Id
@GeneratedValue(strategy = GenerationType.TABLE)
@Column(name = "ID")
@XmlAttribute(name = "id")
private Long id;
@Column(name = "GROUP_NAME", unique = true, nullable = false)
@XmlElement(name = "Name", required = true)
private String groupName;
@Column(name = "DESCRIPTION")
@XmlElement(name = "Description")
private String groupDescription;
public Group() {
}
// Getters and setters omitted
}
Controller :
@Stateless
public class GroupController extends AbstractController<Group> {
public GroupController() {
super(Group.class);
}
}
它扩展了抽象 Controller :
public abstract class AbstractController<T> {
@PersistenceContext
EntityManager em;
private final Class<T> entityClass;
public AbstractController(Class<T> entityClass) {
this.entityClass = entityClass;
}
public T create(T entity) throws EJBAccessException, EntityExistsException, Exception {
em.persist(entity);
return entity;
}
}
和 REST 资源:
@Path("group")
public class GroupResource extends AbstractResource {
@Inject
GroupController controller;
public GroupResource() {
super(Group.class);
}
@Override
protected AbstractController getController() {
return controller;
}
}
扩展抽象资源:
public abstract class AbstractResource<T> {
private final Class<T> entityClass;
public AbstractResource(Class<T> entityClass) {
this.entityClass = entityClass;
}
protected abstract AbstractController getController();
public Type getType() {
Type type = ((ParameterizedType) getClass().getGenericSuperclass())
.getActualTypeArguments()[0];
return new AbstractList(type);
}
@POST
@Consumes({MediaType.APPLICATION_XML, MediaType.APPLICATION_JSON})
public Response post(T entity) {
try {
T returnedEntity = (T) getController()
.create(new GenericEntity(entity, getType()));
return Response.status(Response.Status.CREATED)
.entity((T) new GenericEntity(returnedEntity, getType())).build();
} catch (EJBAccessException ex) {
Logger.getLogger(entityClass.getName())
.log(Level.INFO, ex.getMessage());
return Response.status(Response.Status.FORBIDDEN)
.entity(ex.getMessage()).build();
} catch (EntityExistsException ex) {
Logger.getLogger(entityClass.getName())
.log(Level.INFO, ex.getMessage());
return Response.status(Response.Status.BAD_REQUEST)
.entity(ex.getMessage()).build();
} catch (Exception ex) {
Logger.getLogger(entityClass.getName())
.log(Level.WARNING, ex.getMessage());
return Response.status(Response.Status.INTERNAL_SERVER_ERROR)
.entity(ex.getMessage()).build();
}
}
private static class AbstractList implements ParameterizedType {
Type type;
public AbstractList(Type type) {
this.type = type;
}
@Override
public Type[] getActualTypeArguments() {
return new Type[]{type};
}
@Override
public Type getRawType() {
return List.class;
}
@Override
public Type getOwnerType() {
return AbstractResource.class;
}
}
}
当我不使用抽象类而是将所有内容直接放入 GroupController 和 GroupResource 时,代码可以正常工作。然而,我有很多实体类和方法(GET、PUT、DELETE),我想使代码易于管理。当我将其更改为 public Response post()
时,错误发生在 public Response post(T entity)
上,不再有警告。我如何从我的抽象类中告诉 JAX-RS,在扩展类中类型不是 T(如错误提示的那样)而是类型 Group?
最佳答案
你的类定义如下:
@Path("group")
public class GroupResource extends AbstractResource {
不应该这样定义吗?
@Path("group")
public class GroupResource extends AbstractResource<Group> {
关于java - 无法执行 : javax. ws.rs.NotSupportedException:找不到类型的消息正文阅读器:T 内容类型:application/xml,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27838719/
例如,我有一个父类Author: class Author { String name static hasMany = [ fiction: Book,
代码如下: dojo.query(subNav.navClass).forEach(function(node, index, arr){ if(dojo.style(node, 'd
我有一个带有 Id 和姓名的学生表和一个带有 Id 和 friend Id 的 Friends 表。我想加入这两个表并找到学生的 friend 。 例如,Ashley 的 friend 是 Saman
我通过互联网浏览,但仍未找到问题的答案。应该很容易: class Parent { String name Child child } 当我有一个 child 对象时,如何获得它的 paren
我正在尝试创建一个以 Firebase 作为我的后端的社交应用。现在我正面临如何(在哪里?)找到 friend 功能的问题。 我有每个用户的邮件地址。 我可以访问用户的电话也预订。 在传统的后端中,我
我主要想澄清以下几点: 1。有人告诉我,在 iOS 5 及以下版本中,如果您使用 Game Center 设置多人游戏,则“查找 Facebook 好友”(如与好友争夺战)的功能不是内置的,因此您需要
关于redis docker镜像ENTRYPOINT脚本 docker-entrypoint.sh : #!/bin/sh set -e # first arg is `-f` or `--some-
我是一名优秀的程序员,十分优秀!