2011-04-24 71 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