有没有简单的方法
我可以使用JAXBContext,Marshaller等运行并查看XML.
JSON有什么例子吗?
我找到了.它类似于JAXB.
final JSONJAXBContext context = new JSONJAXBContext(...);
final JSONMarshaller marshaller = context.createJSONMarshaller();
marshaller.marshallToJSON(...);
final JSONUnmarshaller unmarshaller = context.createJSONUnmarshaller();
final T unmarshalled = unmarshaller.unmarshalJAXBElementFromJSON(
..., T.class).getValue();
Run Code Online (Sandbox Code Playgroud)
对于Maven
<dependency>
<groupId>com.sun.jersey</groupId>
<artifactId>jersey-json</artifactId>
<scope>test</scope>
</dependency>
Run Code Online (Sandbox Code Playgroud) 我的JAX-WS战争包含以下条目.
WEB-INF/lib/
WEB-INF/beans.xml // empty
WEB-INF/lib/commons-logging-1.1.1.jar
WEB-INF/lib/corrs-beans-1.0-alpha-1-SNAPSHOT.jar // EJBs are here
WEB-INF/lib/corrs-entities-1.0-alpha-1-SNAPSHOT.jar
WEB-INF/lib/joda-time-1.6.2.jar
WEB-INF/lib/opensaml-2.5.1-1.jar
WEB-INF/lib/openws-1.4.2-1.jar
WEB-INF/lib/slf4j-api-1.6.1.jar
WEB-INF/lib/wss4j-1.6.8.jar
WEB-INF/lib/xmlsec-1.5.3.jar
WEB-INF/lib/xmltooling-1.3.2-1.jar
WEB-INF/web.xml
META-INF/maven/
META-INF/maven/kr.co.ticomms.corrs/
META-INF/maven/kr.co.ticomms.corrs/corrs-services/
META-INF/maven/kr.co.ticomms.corrs/corrs-services/pom.xml
META-INF/maven/kr.co.ticomms.corrs/corrs-services/pom.properties
Run Code Online (Sandbox Code Playgroud)
我的一个SOAPHandler试图调用EJB.
@HandlerChain(file=...)
@WebService(...)
public class MyService {
}
public class MyHandler implements SOAPHandler<SOAPMessageContext> {
@Override
public boolean handleMessage(final SOAPMessageContext context) {
// MyEJB null
}
@Inject
private MyEJB myEJB; // << NULL
}
Run Code Online (Sandbox Code Playgroud)
MyEJB只是一个非接口视图EJB.
@LocalBean
@Stateless
public class MyEJB {
}
Run Code Online (Sandbox Code Playgroud)
有人可以告诉我如何将EJB注入SOAPHandlers吗?
更新/(也许)答案
我改变@Inject了@EJB,它的工作原理.
有没有办法合作@Inject?我看起来更好.:)
使用以下代码,
void key(Key) throws SomeCheckedException {
}
void supplier(Supplier<Key> s) throws SomeCheckedException {
ofNullable(s).ifPresent(s -> { // |
try { // |
key(s.get()); // |
} catch (final SomeCheckedException sce) { // |
// sce is coming from key() method // |
// How can I throw sce for outer method? // --/
}
});
}
Run Code Online (Sandbox Code Playgroud)
我怎么能sce像方法(supplier)方法抛出它一样抛出?
请注意,上面的代码只是一个例子.我需要在key(s.get())lambda表达式中.
void supplier(Supplier<Key> s) throws SomeCheckException {
key(s.get());
}
Run Code Online (Sandbox Code Playgroud) 我正在使用org.springframework.data.domain.Pageable和我的@RestController.
如何验证或限制页面大小?
没有任何验证,当客户使用sizeof调用时10000。实际pageSize是2000。
我认为,这可能会导致最后一页出现错误信号。
我如何验证它并通知客户?说400?
说我有以下内容:
@XmlRootElement(name = "foo1")
public class Foo1
{
@XmlElementWrapper( name="answerList" )
@XmlElement( name="answer" )
private List<String> answerList;
}
Run Code Online (Sandbox Code Playgroud)
如果Foo1实例被编组,它将看起来像这样
<foo1>
<answerList>
<answer>myAnswer1</answer>
<answer>myAnswer2</answer>
</answerList>
</foo1>
Run Code Online (Sandbox Code Playgroud)
现在,如果我有以下属性:
private List<List<String>> answerListsList;
Run Code Online (Sandbox Code Playgroud)
我如何注释上面的属性,所以我将有以下XML(当然,没有创建一个新类来保存字符串列表)?
<foo1>
<answerLists>
<answerList>
<answer>row1 myAnswer1</answer>
<answer>row1 myAnswer2</answer>
</answerList>
<answerList>
<answer>row2 myAnswerA</answer>
<answer>row2 myAnswerB</answer>
</answerList>
<anserLists>
</foo1>
Run Code Online (Sandbox Code Playgroud)
编辑:
不想创建新类的原因是我试图避免创建太多类.在我看来,为你可能拥有的每个字符串列表创建一个新类,它碰巧使用不同的元素名称,这不是一个好的设计.
我可以考虑创建一个新类作为答案,只要该类可以根据需要编组到不同的元素名称和元素包装器中.例如,该类应该能够表示以下XML:
<answerLists>
<answerList>
<answer>row1 myAnswer1</answer>
<answer>row1 myAnswer2</answer>
</answerList>
<answerList>
<answer>row2 myAnswerA</answer>
<answer>row2 myAnswerB</answer>
</answerList>
<anserLists>
Run Code Online (Sandbox Code Playgroud)
要么
<myLists>
<myList>
<item>row1 d1</item>
<item>row1 d2</item>
</myList>
<myList>
<item>row2 dA</item>
<item>row2 dB</item>
</myList>
</myLists>
Run Code Online (Sandbox Code Playgroud) 让我说有一个抽象类看起来像
abstract class Parent<V> {
protected static <T extends Parent<V>, V> T newInstance(
final Class<T> type, final V value) {
// ...
}
}
Run Code Online (Sandbox Code Playgroud)
在以下Child类中
class Child extends Parent<XXX> {
public static Child newInstance1(final XXX value) {
// ...
}
public static Parent<XXX> newInstance2(final XXX value) {
// ...
}
}
Run Code Online (Sandbox Code Playgroud)
哪个更好?newInstance1还是newInstancw2?
我有一个长话。
无论如何,我有一个使用反射调用方法并返回通用结果的方法。
public static <V> JAXBElement<V> unmarshal(..., Class<V> valueType);
Run Code Online (Sandbox Code Playgroud)
问题(?)是当我得到方法调用的结果时。我必须抛弃它。
final Object result = method.invoke(...);
Run Code Online (Sandbox Code Playgroud)
我发现我可以投中result成JAXBElement<V>这个样子。
final Object result = method.invoke(...);
Run Code Online (Sandbox Code Playgroud)
还有其他方法吗?我的意思是我Class<V> valueType可以使用了。
如果不是,以下陈述是否有点cumbersome?
@SuppressWarnings("unchecked")
final JAXBElement<V> result = (JAXBElement<V>) method.invoke(...);
return result;
Run Code Online (Sandbox Code Playgroud)
谢谢。
我的JAX-RS应用程序有一个扩展的Application类.
@ApplicationPath("/")
public class MyApplication extends Application {
// empty; really empty
}
Run Code Online (Sandbox Code Playgroud)
如何在org.glassfish.jersey.media.multipart.MultiPartFeature不修改课程的情况下启用?或者没有必要注册所有资源类/包?
我正在研究一个实体库.我在我的实体上添加了一些bean验证注释.
我坚信在类路径上有一个bean验证实现.
@javax.validation.constraints.NotNull工作,@javax.validation.constraints.AssertTrue不起作用.
class MyEntity {
@AssertTrue // does't work
public boolean hey() {
return false;
}
@NotNull // works; violation while persist
private String some;
}
Run Code Online (Sandbox Code Playgroud)
我可能做错了什么?
我使用org.hibernate:hibernate-validator和更改它org.apache.bval:bval-jsr没有任何区别.
UPDATE
实际上是调用该方法.我检查日志.
这是我的方法.
@AssertTrue(message = "a property must be eclusively system or owned")
private boolean execlusivelySystemOrOwned() {
logger.info("execlusivelySystemOrOwnded()");
final boolean result = system ^ (getOwner() != null);
logger.log(Level.INFO, "result: {0}", result);
return result;
}
Run Code Online (Sandbox Code Playgroud) 我从规范中发现了以下信息。但是对于我不是英国人的我来说还不够清楚。
在
PostPersist和PostRemove调用回调方法为一个实体的实体已变得持久或删除后。这些回调还将在这些操作所级联的所有实体上调用。该PostPersist和PostRemove方法将在数据库中插入和删除分别操作之后被调用。这些数据库操作可以在调用持久,合并或删除操作之后直接发生,也可以在发生刷新操作之后立即发生(可能在事务结束时)。该PostPersist方法中提供了生成的主键值。
我的问题是,任何与交易相关的工作可以在之后回滚@PostRemove吗?
假设我的实体删除了一些离线文件 @PostRemove
class MyEntity {
@PostRemove
private void onPostRemove() {
// delete offline files related to this entity
// not restorable!
}
}
Run Code Online (Sandbox Code Playgroud)
这些脱机文件是否有可能从存储中删除,而实体仍保留在数据库中?(通过回滚?)
java ×5
jaxb ×3
generics ×2
jersey ×2
annotations ×1
cdi ×1
ejb ×1
java-8 ×1
jax-rs ×1
jax-ws ×1
jersey-2.0 ×1
jpa ×1
json ×1
lambda ×1
lifecycle ×1
marshalling ×1
multipart ×1
pagination ×1
reflection ×1
spring ×1
spring-mvc ×1
xml ×1