对于使用cxf实现的Soap服务,我将与cxf相关的jar放在import github.com/mongodb/mongo-go-driver/options
findOptions := options.Find() // build a `findOptions`
findOptions.SetSort(map[string]int{"when": -1}) // reverse order by `when`
findOptions.SetSkip(0) // skip whatever you want, like `offset` clause in mysql
findOptions.SetLimit(10) // like `limit` clause in mysql
// apply findOptions
cur, err := collection.Find(context.TODO(), bson.D{}, findOptions)
// resolve err
for cur.Next(context.TODO()) {
// call cur.Decode()
}
文件夹下。 lib文件夹的清单如下:
webapp/WEB-INF/lib
我正在使用tomcat,并将所有这些jar放在cxf-core-3.1.12.jar
cxf-rt-databinding-jaxb-3.1.12.jar
cxf-rt-frontend-simple-3.1.12.jar
cxf-rt-ws-addr-3.1.12.jar
neethi-3.0.3.jar
cxf-rt-bindings-soap-3.1.12.jar
cxf-rt-frontend-jaxrs-3.1.12.jar
cxf-rt-rs-client-3.1.12.jar
cxf-rt-ws-policy-3.1.12.jar
wsdl4j-1.6.3.jar
cxf-rt-bindings-xml-3.1.12.jar
cxf-rt-frontend-jaxws-3.1.12.jar
cxf-rt-transports-http-3.1.12.jar
cxf-rt-wsdl-3.1.12.jar
xmlschema-core-2.2.2.jar
文件夹中
app/lib
在catalina.properties中的tomcat common.loader引用的lib文件夹下。
我真的很想将所有cxf jar和geronimo jars放在app / lib下,这样一来,一旦我们有了更多soap服务,每个webapp都不会在其webapp文件夹下复制所有cxf jars。我在测试时发现,如果将所有cxf jar放在app / lib下,则不会出现不同的错误。
某些错误与app / lib文件夹中的neethi旧版本有关, xmlschema较旧版本的jar已存在于app / lib下,类似的wsdl4j jar也已存在。目前,我可能无法将neethi 2.x的版本升级到3.x。
我的问题是,如果我仅将与cxf相关的jars放在app / lib下,并将neethi,xmlschema,wsdl4j jars保留在webapp文件夹下,则会出现
这样的异常geronimo-activation_1.1_spec-1.0.2.jar
geronimo-javamail_1.4_spec-1.6.jar
geronimo-servlet_3.0_spec-1.0.jar
geronimo-stax-api_1.0_spec-1.0.1.jar
我真的不明白为什么这行不通。我以为webappclass加载程序将从webapp文件夹位置加载neethi和其他2个jar,因此它应该可以工作。关于它为什么不起作用的任何建议以及我可以尝试的任何替代方法。
我尝试了各种组合,发现将所有这些罐子放在一起只会起作用:
Constructor threw exception; nested exception is org.apache.cxf.bus.extension.ExtensionException: Could not load extension class org.apache.cxf.ws.policy.AssertionBuilderRegistryImpl.