2011-04-24 102 views
1

我想将以下类作为Web服务公开。使用Java编写Web服务中的复杂类型

import cern.colt.matrix.impl.DenseDoubleMatrix2D; 

public class MatrixAlgebraImpl implements MatrixAlgebra{ 

    public DenseDoubleMatrix2D echo(DenseDoubleMatrix2D matrix) { 
     return matrix; 
    } 
} 

然而DenseDoubleMatrix2D没有默认的构造函数和第三方库,所以我不能申请任何注释。

http://acs.lbl.gov/software/colt/api/cern/colt/matrix/impl/DenseDoubleMatrix2D.html

理想我宁愿不要任何注释代码,并一直在寻找与CXF和宙斯盾做到这一点。但任何解决方案都可以。

回答

0

制作自己的继承自DenseDoubleMatrix2D的类并具有默认构造函数。或者使用JAX-B并阅读http://weblogs.java.net/blog/kohsuke/archive/2005/09/using_jaxb_20s.html。 CXF也支持JAX-B。

+0

这种方法将起作用。不过,我有一个相当大的代码使用柯尔特,我宁愿不分类每个科尔特矩阵类型或用适配器包装每个端点。是否有任何其他方式来实现暴露这个类与任何Web服务框架,而不使用注释的目标。 – figopi 2011-04-29 20:48:19

+0

我对此表示怀疑。这些对象必须以某种方式构建。如果没有“无参数”的构造函数,则必须指定要执行的操作。这是每个班级的规格。你可以提交补丁到已经成为mahout-collection的小马,以添加无参数构造函数... – bmargulies 2011-04-29 21:25:41

+0

感谢您的答案,但是小马矩阵库不是mahout-collections的一部分。 – figopi 2011-04-30 00:04:50