首先,我不是在谈论Marshaller#Listener.我在谈论那些class defined事件回调.
谁能告诉我应该从boolean beforeMarshal(Marshaller)方法中返回什么?
/**
* Where is apidocs for this method?
* What should I return for this?
*/
boolean beforeMarshal(Marshaller marshaller);
Run Code Online (Sandbox Code Playgroud)
我的意思是,无论如何,用于转换这种方法JPA's Long @Id to JAXB's String @XmlID 与JAXB-RI和无莫西.
[编辑]一个void版本似乎工作.这只是一个文档问题吗?
正如你和我都知道的那样,关于这种错误信息有很多问题.
但我找不到任何好的答案,因为答案太多了.
我有一个存储nonce客户端发送的表.
但有时(偶尔)db会抱怨重复的主键插入,即使没有完全相同主键的记录也是如此.
这是JVM显示的内容.
[#|2012-11-09T11:06:52.098+0900|WARNING|glassfish3.1.2|javax.enterprise.system.container.ejb.com.sun.ejb.containers|_ThreadID=236;_ThreadName=Thread-2;|EJB5184:A system exception occurred during an invocation on EJB Nonce2Bean, method: public java.lang.Object kr.co.ticomms.gameground.business.AbstractEntityFacade.persist(java.lang.Object)|#]
[#|2012-11-09T11:06:52.099+0900|WARNING|glassfish3.1.2|javax.enterprise.system.container.ejb.com.sun.ejb.containers|_ThreadID=236;_ThreadName=Thread-2;|javax.ejb.EJBException
...
Caused by: javax.persistence.PersistenceException: Exception [EclipseLink-4002] (Eclipse Persistence Services - 2.3.2.v20111125-r10461): org.eclipse.persistence.exceptions.DatabaseException
Internal Exception: com.mysql.jdbc.exceptions.jdbc4.MySQLIntegrityConstraintViolationException: Duplicate entry 'c8b4bdb84606fed0-c8b4bdb84606fed0_1352426820765_1880007534138556' for key 'PRIMARY'
Error Code: 1062
Call: INSERT INTO NONCE2 (NONCE, UDID, CREATED_DATE) VALUES (?, ?, ?)
bind => [3 parameters bound]
Query: InsertObjectQuery(c8b4bdb84606fed0/c8b4bdb84606fed0_1352426820765_1880007534138556402)
...
... 29 more
Caused by: Exception [EclipseLink-4002] (Eclipse Persistence Services - 2.3.2.v20111125-r10461): org.eclipse.persistence.exceptions.DatabaseException
Internal Exception: …Run Code Online (Sandbox Code Playgroud) 我正在使用Spring MVC开发一个Web应用程序,我正在使用Spring的缓存抽象与Redis来缓存我的数据库查询.但我无法使用创建多个缓存存储@Cacheable.
@Cacheable("acache")
public String atest(int i) {
return "a";
}
@Cacheable("bcache")
public String btest(int i) {
return "b";
}
...
...
String s = atest(1);
String r = btest(1);
Run Code Online (Sandbox Code Playgroud)
使用Redis的,既s与r具有相同的价值" a".即使我将这两种方法缓存在不同的缓存中,它似乎也没有效果.
但是当我使用Spring时,这种方法很好用SimpleCacheManager.
Redis的Spring bean配置:
<cache:annotation-driven />
<bean id="jedisConnectionFactory"
class="org.springframework.data.redis.connection.jedis.JedisConnectionFactory"
p:hostName="${redis.host-name}"
p:port="${redis.port}"
p:usePool="true"/>
<bean id="redisTemplate"
class="org.springframework.data.redis.core.RedisTemplate"
p:connectionFactory-ref="jedisConnectionFactory"/>
<bean id="cacheManager"
class="org.springframework.data.redis.cache.RedisCacheManager"
c:template-ref="redisTemplate">
</bean>
Run Code Online (Sandbox Code Playgroud) 我已经知道只有IntStream和LongStream.如何IntStream从字节数组中创建一个?
目前我打算这样做.
static int[] bytesToInts(final byte[] bytes) {
final int[] ints = new int[bytes.length];
for (int i = 0; i < ints.length; i++) {
ints[i] = bytes[i] & 0xFF;
}
return ints;
}
static IntStream bytesToIntStream(final byte[] bytes) {
return IntStream.of(bytesToInt(bytes));
}
Run Code Online (Sandbox Code Playgroud)
有没有更简单或更快的方法来做到这一点?
我的Web应用程序中有一些域模型类,它们与自己有层次关系.一个示例是用于对用户发布进行分类的分层类别结构.
有一些逻辑与这些类的层次性有关,这是常见的.所以我试图将逻辑移到一个通用的@MappedSuperclass注释超类中.
就像是 :
@MappedSuperclass
public abstract class HierarchicalBaseEntity<N extends HierarchicalBaseEntity<N>>
extends BaseEntity {
@ManyToOne(optional=true)
@JoinColumn(name="parent")
private N parent;
private int depth;
public N getParent() { ...
public void setParent(N newParent) { ...
public boolean isRoot() { ...
public int getDepth() { ...
public boolean isDescendantOf(N ancestor) { ...
public static <N extends HierarchicalBaseEntity<N>> N getCommonAncestor(N a, N b) { ...
public static <N extends HierarchicalBaseEntity<N>> Collection<N> reduceToCommonAncestors(Collection<N> entities) { ...
}
Run Code Online (Sandbox Code Playgroud)
然后子类扩展HierarchicalBaseEntity,将自己作为泛型类型N:
@Entity
public class CategoryBean extends HierarchicalBaseEntity<CategoryBean> { …Run Code Online (Sandbox Code Playgroud) 有没有简单的方法
我可以使用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?我看起来更好.:)
我打算制作一个片段,用于重用参数.
<insert ...>
<selectKey keyProperty="id" resultType="_long" order="BEFORE">
<choose>
<when test="_databaseId == 'derby'">
VALUES NEXT VALUE FOR SOME_ID_SEQ
</when>
<otherwise>
SELECT SOME_ID_SEQ.NEXTVAL FROM DUAL
</otherwise>
</choose>
</selectKey>
INSERT INTO ...
</insert>
Run Code Online (Sandbox Code Playgroud)
我可以使用参数创建SQL片段吗?
<sql id="selectKeyFromSequence">
<selectKey keyProperty="id" resultType="_long" order="BEFORE">
<choose>
<when test="_databaseId == 'derby'">
VALUES NEXT VALUE FOR #{sequenceName}
</when>
<otherwise>
SELECT #{sequenceName}.NEXTVAL FROM DUAL
</otherwise>
</choose>
</selectKey>
</sql>
Run Code Online (Sandbox Code Playgroud)
这样我可以像这样重用它们吗?
<insert ...>
<include refid="...selectKeyFromSequence"/> <!-- How can I pass a parameter? -->
INSERT INTO ...
</insert>
Run Code Online (Sandbox Code Playgroud)
这可能吗?
使用以下代码,
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?
java ×3
java-8 ×2
jaxb ×2
lambda ×2
spring ×2
spring-mvc ×2
caching ×1
cdi ×1
eclipselink ×1
ejb ×1
generics ×1
ibatis ×1
innodb ×1
java-stream ×1
jax-ws ×1
jersey ×1
json ×1
mybatis ×1
mysql ×1
pagination ×1
primary-key ×1
redis ×1