2016-05-26 4 views
2

Я просматривал документацию REST API как для реестра, так и для API управления, и мне не удалось выяснить, как импортировать схему через REST API. Это возможно?WSO2 G-Reg API REST - схема импорта

Я могу создать REST службы с API управления, но тот же процесс с результатами схемы в NullPointerException

TID: [-1234] [] [2016-05-26 16:16:22,436] ERROR {org.wso2.carbon.governance.rest.api.internal.GovernanceExceptionHandler} - Exception during service invocation {org.wso2.carbon.governance.rest.api.internal.GovernanceExceptionHandler} 
     org.wso2.carbon.governance.api.exception.GovernanceException: Error occurred while adding the resource. 
     at org.wso2.carbon.governance.rest.api.Asset.importResourceWithRegistry(Asset.java:531) 
     at org.wso2.carbon.governance.rest.api.Asset.createGovernanceAsset(Asset.java:469) 
     at org.wso2.carbon.governance.rest.api.Asset.createAsset(Asset.java:158) 
     at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
     at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) 
     at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) 
     at java.lang.reflect.Method.invoke(Method.java:606) 
     at org.apache.cxf.service.invoker.AbstractInvoker.performInvocation(AbstractInvoker.java:188) 
     at org.apache.cxf.service.invoker.AbstractInvoker.invoke(AbstractInvoker.java:104) 
     at org.apache.cxf.jaxrs.JAXRSInvoker.invoke(JAXRSInvoker.java:204) 
     at org.apache.cxf.jaxrs.JAXRSInvoker.invoke(JAXRSInvoker.java:101) 
     at org.apache.cxf.interceptor.ServiceInvokerInterceptor$1.run(ServiceInvokerInterceptor.java:58) 
     at org.apache.cxf.interceptor.ServiceInvokerInterceptor.handleMessage(ServiceInvokerInterceptor.java:94) 
     at org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:272) 
     at org.apache.cxf.transport.ChainInitiationObserver.onMessage(ChainInitiationObserver.java:121) 
     at org.apache.cxf.transport.http.AbstractHTTPDestination.invoke(AbstractHTTPDestination.java:249) 
     at org.apache.cxf.transport.servlet.ServletController.invokeDestination(ServletController.java:248) 
     at org.apache.cxf.transport.servlet.ServletController.invoke(ServletController.java:222) 
     at org.apache.cxf.transport.servlet.ServletController.invoke(ServletController.java:153) 
     at org.apache.cxf.transport.servlet.CXFNonSpringServlet.invoke(CXFNonSpringServlet.java:171) 
     at org.apache.cxf.transport.servlet.AbstractHTTPServlet.handleRequest(AbstractHTTPServlet.java:289) 
     at org.apache.cxf.transport.servlet.AbstractHTTPServlet.doPost(AbstractHTTPServlet.java:209) 
     at javax.servlet.http.HttpServlet.service(HttpServlet.java:646) 
     at org.apache.cxf.transport.servlet.AbstractHTTPServlet.service(AbstractHTTPServlet.java:265) 
     at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:303) 
     at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208) 
     at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52) 
     at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241) 
     at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208) 
     at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:220) 
     at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:122) 
     at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:613) 
     at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:170) 
     at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:103) 
     at org.wso2.carbon.tomcat.ext.valves.CompositeValve.continueInvocation(CompositeValve.java:99) 
     at org.wso2.carbon.tomcat.ext.valves.CarbonTomcatValve$1.invoke(CarbonTomcatValve.java:47) 
     at org.wso2.carbon.webapp.mgt.TenantLazyLoaderValve.invoke(TenantLazyLoaderValve.java:57) 
     at org.wso2.carbon.tomcat.ext.valves.TomcatValveContainer.invokeValves(TomcatValveContainer.java:47) 
     at org.wso2.carbon.tomcat.ext.valves.CompositeValve.invoke(CompositeValve.java:62) 
     at org.wso2.carbon.tomcat.ext.valves.CarbonStuckThreadDetectionValve.invoke(CarbonStuckThreadDetectionValve.java:159) 
     at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:950) 
     at org.wso2.carbon.tomcat.ext.valves.CarbonContextCreatorValve.invoke(CarbonContextCreatorValve.java:57) 
     at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:116) 
     at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:421) 
     at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1074) 
     at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:611) 
     at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1739) 
     at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.run(NioEndpoint.java:1698) 
     at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145) 
     at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615) 
     at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61) 
     at java.lang.Thread.run(Thread.java:745) 
     Caused by: java.lang.NullPointerException 
     at org.wso2.carbon.registry.resource.services.utils.GetTextContentUtil.getByteContent(GetTextContentUtil.java:83) 

Я предполагаю, что это нуждается какой-либо файл схемы, либо задается URL или при условии, как файл. Это что-то, что я могу импортировать через REST API?

ответ

2

Есть 3 способа добавления ресурсов (типа контента rxts, такие как WSDL, WADL, XSD и политики) в G-Reg

1. Использование системного реестра REST API

2. Использование publisher API (G-Reg 5.0.0 или выше)

Создание схемы: (Загрузить файл)

Запрос

URL:https://<host>:<port>/publisher/assets/schema/apis/schemas?type=schema 

Method: POST 
Header:Cookie: JSESSIONID=<SESSION-ID> 

Payload:(form data) 
schema : schema 
schema_file : <schema file name>.xsd 
filename : <schema file name>.xsd 
schema_file_name : <schema file name>.xsd 
file_version : <version> 
addNewSchemaFileAssetButton : Create 

Загрузить Файл:

Загрузить файл схемы. Дайте записи поля как «» schema_file

Ответ должен быть:

Status: 200 OK 

Чтобы загрузить почтовый файл просто изменить schema_file, имя файла и schema_file_name значения с именем файла почтового индекса (я не проверял. это должно работать в соответствии с исходным кодом.)

3. Использование API управления - только для ресурсов размещенного контента контента. (G-Reg 5.2.0 или выше)

Content type resource upload - WSDL sample request

Что версия вы используете? Надеюсь, что эти детали помогут вам!

+0

Спасибо. Я использую v5.2.0. Есть ли способ отправить файл через API управления или мне нужно ссылаться на размещенный файл в полезной нагрузке в качестве URL-адреса? –

+0

Нет, однако я рекомендую вам использовать API издателя. – tkr

+0

Я обязательно посмотрю. Является ли API-интерфейс Publisher документированным где-то? Я не могу найти его в документации? –

Смежные вопросы