为什么我的fedora-admin.sh findObjects会抛出异常?

时间:2015-07-07 13:44:44

标签: tomcat7 fedora-commons

我最近从fedora-commons 3.7升级到3.8.1。我可以从fedora-admin web面板中搜索和摄取对象,但是当我运行/fedora/client/bin/fedora-admin.sh并尝试搜索'*'时,我收到此错误:

WARN 09:33:21.111 (PhaseInterceptorChain) Interceptor for {http://fedora-commons.org/2011/07/definitions/types/}FedoraAPIAMTOMService#{http://fedora-commons.org/2011/07/definitions/types/}findObjects has thrown exception, unwinding now
org.apache.cxf.interceptor.Fault: Could not send Message.
at org.apache.cxf.interceptor.MessageSenderInterceptor$MessageSenderEndingInterceptor.handleMessage(MessageSenderInterceptor.java:64) ~[cxf-bundle-2.7.7.jar:2.7.7]
at org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:272) ~[cxf-bundle-2.7.7.jar:2.7.7]
at org.apache.cxf.endpoint.ClientImpl.doInvoke(ClientImpl.java:565) [cxf-bundle-2.7.7.jar:2.7.7]
at org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:474) [cxf-bundle-2.7.7.jar:2.7.7]
at org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:377) [cxf-bundle-2.7.7.jar:2.7.7]
at org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:330) [cxf-bundle-2.7.7.jar:2.7.7]
at org.apache.cxf.frontend.ClientProxy.invokeSync(ClientProxy.java:96) [cxf-bundle-2.7.7.jar:2.7.7]
at org.apache.cxf.jaxws.JaxWsClientProxy.invoke(JaxWsClientProxy.java:135) [cxf-bundle-2.7.7.jar:2.7.7]
at com.sun.proxy.$Proxy50.findObjects(Unknown Source) [na:na]
at org.fcrepo.client.mtom.APIAStubWrapper$7.construct(APIAStubWrapper.java:193) [fcrepo-client-admin-3.8.1-SNAPSHOT.jar:na]
at org.fcrepo.client.mtom.APIAStubWrapper$7.construct(APIAStubWrapper.java:187) [fcrepo-client-admin-3.8.1-SNAPSHOT.jar:na]
at org.fcrepo.client.SwingWorker$2.run(SwingWorker.java:131) [fcrepo-client-admin-3.8.1-SNAPSHOT.jar:na]
at java.lang.Thread.run(Thread.java:745) [na:1.8.0_45]
Caused by: org.apache.cxf.transport.http.HTTPException: HTTP response '401: Unauthorized' when communicating with http://localhost:8080/fedora/services/accessMTOM
at org.apache.cxf.transport.http.HTTPConduit$WrappedOutputStream.handleResponseInternal(HTTPConduit.java:1542) ~[cxf-bundle-2.7.7.jar:2.7.7]
at org.apache.cxf.transport.http.HTTPConduit$WrappedOutputStream.handleResponse(HTTPConduit.java:1502) ~[cxf-bundle-2.7.7.jar:2.7.7]
at org.apache.cxf.transport.http.HTTPConduit$WrappedOutputStream.close(HTTPConduit.java:1309) ~[cxf-bundle-2.7.7.jar:2.7.7]
at org.apache.cxf.transport.AbstractConduit.close(AbstractConduit.java:56) ~[cxf-bundle-2.7.7.jar:2.7.7]
at org.apache.cxf.transport.http.HTTPConduit.close(HTTPConduit.java:627) ~[cxf-bundle-2.7.7.jar:2.7.7]
at org.apache.cxf.interceptor.MessageSenderInterceptor$MessageSenderEndingInterceptor.handleMessage(MessageSenderInterceptor.java:62) ~[cxf-bundle-2.7.7.jar:2.7.7]
... 12 common frames omitted
Exception in thread "Thread-1" javax.xml.ws.WebServiceException: Could not send Message.
at org.apache.cxf.jaxws.JaxWsClientProxy.invoke(JaxWsClientProxy.java:146)
at com.sun.proxy.$Proxy50.findObjects(Unknown Source)
at org.fcrepo.client.mtom.APIAStubWrapper$7.construct(APIAStubWrapper.java:193)
at org.fcrepo.client.mtom.APIAStubWrapper$7.construct(APIAStubWrapper.java:187)
at org.fcrepo.client.SwingWorker$2.run(SwingWorker.java:131)
at java.lang.Thread.run(Thread.java:745)
Caused by: org.apache.cxf.transport.http.HTTPException: HTTP response '401: Unauthorized' when communicating with http://localhost:8080/fedora/services/accessMTOM
at org.apache.cxf.transport.http.HTTPConduit$WrappedOutputStream.handleResponseInternal(HTTPConduit.java:1542)
at org.apache.cxf.transport.http.HTTPConduit$WrappedOutputStream.handleResponse(HTTPConduit.java:1502)
at org.apache.cxf.transport.http.HTTPConduit$WrappedOutputStream.close(HTTPConduit.java:1309)
at org.apache.cxf.transport.AbstractConduit.close(AbstractConduit.java:56)
at org.apache.cxf.transport.http.HTTPConduit.close(HTTPConduit.java:627)
at org.apache.cxf.interceptor.MessageSenderInterceptor$MessageSenderEndingInterceptor.handleMessage(MessageSenderInterceptor.java:62)
at org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:272)
at org.apache.cxf.endpoint.ClientImpl.doInvoke(ClientImpl.java:565)
at org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:474)
at org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:377)
at org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:330)
at org.apache.cxf.frontend.ClientProxy.invokeSync(ClientProxy.java:96)
at org.apache.cxf.jaxws.JaxWsClientProxy.invoke(JaxWsClientProxy.java:135)
... 5 more

我正在运行fedora-admin.sh作为我的fedora用户。谢谢你的帮助。

1 个答案:

答案 0 :(得分:2)

您的HTTP响应代码401未经授权。

所以我认为你在安装Fedora Commons时已经在API-A上启用了身份验证。

我的安装遇到了类似的问题,我通过生成带有keytool的.keystore并将其添加到$ JAVA_OPTS来设置ssl来解决它。我在.bashrc中添加了这一行:

export JAVA_OPTS =' - Djavax.net.ssl.trustStore =〜/ .keystore -Djavax.net.ssl.trustStorePassword = MyKeystorePassword'

然后使用命令:source~ / .bashrc

您可以通过在$ FEDORA_HOME / server / config中编辑服务器配置再次运行安装脚本来验证您的ssl配置是否存在问题,方法是启用无HTTPS的Fedora API访问权限如果您不再有错误,然后检查上面的java ssl配置。