- Marshalling.getProvidedMarshallerFactory("serial");返回null
public class MarshallingCodecFactory {
/**
* 创建Jboss Marshaller
* @throws IOException
*/
protected static Marshaller buildMarshalling() throws IOException {
final MarshallerFactory marshallerFactory = Marshalling.getProvidedMarshallerFactory("serial");
这里返回null, 出现这个问题的原因是什么呢?
查看pom.xml文件的内容如下
<dependency>
<groupId>org.jboss.marshalling</groupId>
<artifactId>jboss-marshalling-serial</artifactId>
<version>2.0.2.Final</version>
<scope>test</scope>
</dependency>
这里的scope=test,肯定不行。这样的话, jboss-marshalling-serrial.jar只参与了编译,没有参与运行。 执行上面的getProvidedMarshallingFactory 就没法查找到"serial"对应的类
SerialMarshallerFactory(这个类的package是org.jboss.marshalling.serial就在这个jar包中)
解决办法:
去掉score=test的设置
改成下面的
<dependency>
<groupId>org.jboss.marshalling</groupId>
<artifactId>jboss-marshalling-serial</artifactId>
<version>2.0.2.Final</version>
<!-- <scope>test</scope> -->
</dependency>