小编Pet*_*der的帖子

Jaxb:如何解组xs:任何XML字符串部分?

我有一个应用程序使用Jaxb进行XML < - >转换,并使用maven-jaxb2-plugin自动生成类.

在我的架构深处,我有可能输入"ANY"xml.

更新:这更好地描述了我的架构.一些已知的XML包含一个完全未知的部分("任何"部分).

<xs:complexType name="MessageType">
  <xs:sequence>
    <xs:element name="XmlAnyPayload" minOccurs="0">
        <xs:complexType>
            <xs:sequence>
                <xs:any namespace="##any"/>
            </xs:sequence>
        </xs:complexType>
    </xs:element>
    <xs:element name="OtherElements">
        ....
</xs:sequence>
Run Code Online (Sandbox Code Playgroud)

这将(通过jaxb)映射到这样的内部类.

@XmlAccessorType(XmlAccessType.FIELD)
@XmlType(name = "", propOrder = {
    "any"
})
public static class XmlAnyPayload {

    @XmlAnyElement(lax = true)
    protected Object any;
Run Code Online (Sandbox Code Playgroud)

当我解开整个结构时,没问题."Object any"将呈现为org.apache.xerces.dom.ElementNSImpl.现在,我想手动重新创建Java对象,然后转到XML.我如何获取一些随机XML并放入any(org.apache.xerces.dom.ElementNSImpl)元素以构建Java对象?

另外,下一种情况是当我将这个元素作为java时,我想解组这个部分(为了能够提取这个元素的XML字符串).但这是不可能的.我得到一个关于根元素的例外.但是不可能注释ElementNSImpl.

unable to marshal type "com.sun.org.apache.xerces.internal.dom.ElementNSImpl" as an element because it is missing an @XmlRootElement annotation
Run Code Online (Sandbox Code Playgroud)

您对如何处理这些问题有什么建议吗?

java xml jaxb

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

如何正确配置ActiveMQ与池?

我们对AMQ使用以下配置

<bean id="jmsConnectionFactory" class="org.apache.activemq.ActiveMQConnectionFactory">
    <property name="brokerURL" value="${brokerURL1}"/>
</bean>
<bean id="pooledConnectionFactory" class="org.apache.activemq.pool.PooledConnectionFactory">
    <property name="maxConnections" value="10"/>
    <property name="maximumActive" value="100"/>
    <property name="connectionFactory" ref="jmsConnectionFactory"/>
</bean>
<bean id="jmsConfig" class="org.apache.camel.component.jms.JmsConfiguration">
    <property name="connectionFactory" ref="pooledConnectionFactory"/>
    <property name="transacted" value="false"/>
    <property name="concurrentConsumers" value="5"/>
    <property name="maxConcurrentConsumers" value="10"/>
</bean>

<bean id="activemq" class="org.apache.activemq.camel.component.ActiveMQComponent">
    <property name="configuration" ref="jmsConfig"/>
</bean>
Run Code Online (Sandbox Code Playgroud)

我经常有一个奇怪的问题 - 松散的信息.实际上AMQ表示一切正常并且消息已经出列但是应用程序上没有消息...

我已经读过它可能是缓存消费者的问题,而应该在配置后使用JmsConfiguration

<bean id="jmsConfig" class="org.apache.activemq.camel.component.ActiveMQConfiguration">
    <property name="connectionFactory" ref="pooledConnectionFactory"/>
    <property name="transacted" value="false"/>
    <property name="concurrentConsumers" value="5"/>
    <property name="maxConcurrentConsumers" value="10"/>
    <property name="cacheLevelName" value="CACHE_CONSUMER"/>
</bean>
Run Code Online (Sandbox Code Playgroud)

有谁知道如何正确配置activemq?哪些值应设置为最佳性能和良好的可靠性?

<property name="maxConnections" value="?"/>
<property name="maximumActive" value="?"/>
<property name="concurrentConsumers" value="?"/>
<property name="maxConcurrentConsumers" value="?"/> …
Run Code Online (Sandbox Code Playgroud)

activemq-classic connection-pooling apache-camel

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

算法问题 - 找到最不常见的子集

a是具有多个"类别"的对象,例如a1具有三个类别b1,b2,b3.问题是,将类别(可以增长得相当大)的数量减少到总是一起出现的组中."最大的共同子集"的事情.

例如,给定以下数据集:

a1{ b1,b2,b3 } 
a2{ b2,b3 }
a3{ b1,b4 }
Run Code Online (Sandbox Code Playgroud)

我们可以发现b2和b3总是在一起..

b23 = {b2,b3}
Run Code Online (Sandbox Code Playgroud)

..我们可以减少设置的类别:

a1{ b1, b23 }
a2{ b23 }
a3{ b1,b4 }
Run Code Online (Sandbox Code Playgroud)

所以,我的问题是找到一些算法来解决这个问题.

我已经开始研究最长公共序列问题,它可能是一个解决方案.也就是说,b' = LCS(set_of_As)在遍历所有类别之前,重复对这样的类别进行分组.但是,这还不完整.我必须以某种方式限制输入域以使其成为可能.

我想念一些明显的东西吗?您可以指向我的任何问题域的提示?有没有人认识到这种问题的任何其他方法.

algorithm

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

Redbean,使用相同对象的多个多对多

在简单的场景下,redbean中的多对多映射很容易使用.但是,如何在同一个对象之间进行多对多映射?

例:

我想要实现的结构非常类似于"追随者"和"追随者"的twitter/instagram设置

// this c

$user = R::dispense('user');
$user2 = R::dispense('user');

// ..

//Usr1 follows user2
$user->sharedUser[] = $user2;

// user2 follows user1
$user2->sharedUser[] = $user1;
Run Code Online (Sandbox Code Playgroud)

现在,我想从user1的角度列出关注者和以下用户.

但是,我无法列出"关注者",而无需查询数据库中的所有用户并查找user1.有没有办法在redbean中有多个"共享"列表或者针对这些特定情况的任何好的解决方法,或者查询方式是什么?

php orm redbean

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

OpenJPA1.2 - 延迟加载一个BLOB

我有一个非常简单的JPA实体.它具有一些简单的元数据字段,ID和大约500kB-10MB的有效负载字符串.

@Entity
public class MyEntity{
  @Id
  @GenerateValue(Strategy=GenerationType.IDENTITY)
  private long myEntityId;

  private String metaData1; 
  ..
  private String metaDataN;

  @Lob
  private String payload; // large.
Run Code Online (Sandbox Code Playgroud)

}

大多数时候,我并不是在加载有效负载,而只是查询元数据字段.有没有办法在没有创建包装有效负载的特定实体的情况下加载延迟有效负载,并且与我的主实体中的那个具有一对一关系的延迟负载?

整个过程是使用OpenJPA 1.2和DB2后备数据库实现的.

db2 jpa openjpa jpql

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