2014-07-01 32 views
4

我可以從Atlassian找到最新的API。如何通過休息呼叫更新Confluence 5.5.1頁面

https://docs.atlassian.com/atlassian-confluence/REST/5.5.3/#d2e120

我可以看到,我應該能夠更新通過呼叫「/內容/(編號)」頁面PUT。

但是當我嘗試PUT時,我剛從服務器拿回500。 如果我嘗試一個這樣的簡單示例...

嘗試更新頁面的示例代碼。

String json = 
    " {               "+ 
    "  \"body\":{            "+ 
    "   \"view\":{           "+ 
    "    \"value\":\"<p>main updated</p>\",    "+ 
    "   }             "+ 
    "   }             "+ 
    " }               "; 

    Client client = Client.create(); 
    WebResource webResource = client.resource("http://x.x.x.x/rest/api/content/[email protected]&os_password=xxx"); 

     webResource.setProperty("Content-Type", "application/json"); 
     ClientResponse response = webResource.accept("application/json").put(ClientResponse.class, json); 

     System.out.println("Output from Server .... statusCode ["+response.getStatus()+"]"); 
     System.out.println(response.getEntity(String.class)); 

我仍然收到500錯誤。

Output from Server .... statusCode [500] 
{"statusCode":500,"message":"javax.ws.rs.WebApplicationException: null"} 

有人可以給我一些建議。

下面是從合流日誌文件的堆棧跟蹤...

2014-07-02 10:15:57,856 WARN [http-bio-80-exec-15274] [atlassian.confluence.cache.TransactionalCacheFactory] warning Transactional cache update outside transaction. All updates to this cache should be performed from a thread with a valid transaction context. 
2014-07-02 10:15:57,856 ERROR [http-bio-80-exec-15274] [rest.api.model.ExceptionConverter] convertServiceException No status code found for exception, converting to internal server error : 
-- url: /rest/api/content/8226411 | userName: [email protected] 
javax.ws.rs.WebApplicationException 
       at com.sun.jersey.server.impl.uri.rules.TerminatingRule.accept(TerminatingRule.java:66) 
       at com.sun.jersey.server.impl.uri.rules.ResourceClassRule.accept(ResourceClassRule.java:108) 
       at com.sun.jersey.server.impl.uri.rules.RightHandPathRule.accept(RightHandPathRule.java:147) 
       at com.sun.jersey.server.impl.uri.rules.RootResourceClassesRule.accept(RootResourceClassesRule.java:84) 
       at com.sun.jersey.server.impl.application.WebApplicationImpl._handleRequest(WebApplicationImpl.java:1469) 
       at com.sun.jersey.server.impl.application.WebApplicationImpl._handleRequest(WebApplicationImpl.java:1400) 
       at com.sun.jersey.server.impl.application.WebApplicationImpl.handleRequest(WebApplicationImpl.java:1349) 
       at com.sun.jersey.server.impl.application.WebApplicationImpl.handleRequest(WebApplicationImpl.java:1339) 
       at com.sun.jersey.spi.container.servlet.WebComponent.service(WebComponent.java:416) 
       at com.sun.jersey.spi.container.servlet.ServletContainer.service(ServletContainer.java:537) 
       at com.atlassian.plugins.rest.module.RestDelegatingServletFilter$JerseyOsgiServletContainer.doFilter(RestDelegatingServletFilter.java:178) 
       at com.sun.jersey.spi.container.servlet.ServletContainer.doFilter(ServletContainer.java:795) 
       at com.atlassian.plugins.rest.module.RestDelegatingServletFilter.doFilter(RestDelegatingServletFilter.java:73) 
       at com.atlassian.plugin.servlet.filter.DelegatingPluginFilter.doFilter(DelegatingPluginFilter.java:74) 
       at com.atlassian.plugin.servlet.filter.IteratingFilterChain.doFilter(IteratingFilterChain.java:42) 
       at com.atlassian.plugin.servlet.filter.ServletFilterModuleContainerFilter.doFilter(ServletFilterModuleContainerFilter.java:77) 
       at com.atlassian.plugin.servlet.filter.ServletFilterModuleContainerFilter.doFilter(ServletFilterModuleContainerFilter.java:63) 
       at com.atlassian.plugin.servlet.filter.DelegatingPluginFilter.doFilter(DelegatingPluginFilter.java:74) 
       at com.atlassian.plugin.servlet.filter.IteratingFilterChain.doFilter(IteratingFilterChain.java:42) 
       at com.atlassian.plugin.servlet.filter.DelegatingPluginFilter$1.doFilter(DelegatingPluginFilter.java:66) 
       at com.atlassian.plugins.rest.module.servlet.RestServletUtilsUpdaterFilter.doFilterInternal(RestServletUtilsUpdaterFilter.java:26) 
       at com.atlassian.plugins.rest.module.servlet.RestServletUtilsUpdaterFilter.doFilter(RestServletUtilsUpdaterFilter.java:40) 
       at com.atlassian.plugin.servlet.filter.DelegatingPluginFilter.doFilter(DelegatingPluginFilter.java:74) 
       at com.atlassian.plugin.servlet.filter.IteratingFilterChain.doFilter(IteratingFilterChain.java:42) 
       at com.atlassian.plugin.servlet.filter.DelegatingPluginFilter$1.doFilter(DelegatingPluginFilter.java:66) 
       at com.atlassian.applinks.core.rest.context.ContextFilter.doFilter(ContextFilter.java:25) 
       at com.atlassian.plugin.servlet.filter.DelegatingPluginFilter.doFilter(DelegatingPluginFilter.java:74) 
       at com.atlassian.plugin.servlet.filter.IteratingFilterChain.doFilter(IteratingFilterChain.java:42) 
       at com.atlassian.plugin.servlet.filter.DelegatingPluginFilter$1.doFilter(DelegatingPluginFilter.java:66) 
       at com.atlassian.mywork.client.filter.ServingRequestsFilter.doFilter(ServingRequestsFilter.java:37) 
       at com.atlassian.plugin.servlet.filter.DelegatingPluginFilter.doFilter(DelegatingPluginFilter.java:74) 
       at com.atlassian.plugin.servlet.filter.IteratingFilterChain.doFilter(IteratingFilterChain.java:42) 
       at com.atlassian.plugin.servlet.filter.DelegatingPluginFilter$1.doFilter(DelegatingPluginFilter.java:66) 
       at com.arsenale.plugins.lockpoint.LifecycleFilter.doFilter(SourceFile:53) 
       at com.atlassian.plugin.servlet.filter.DelegatingPluginFilter.doFilter(DelegatingPluginFilter.java:74) 
       at com.atlassian.plugin.servlet.filter.IteratingFilterChain.doFilter(IteratingFilterChain.java:42) 
       at com.atlassian.plugin.servlet.filter.DelegatingPluginFilter$1.doFilter(DelegatingPluginFilter.java:66) 
       at com.atlassian.plugins.cors.CorsFilter.doFilter(CorsFilter.java:65) 
       at com.atlassian.plugin.servlet.filter.DelegatingPluginFilter.doFilter(DelegatingPluginFilter.java:74) 
       at com.atlassian.plugin.servlet.filter.IteratingFilterChain.doFilter(IteratingFilterChain.java:42) 
       at com.atlassian.plugin.servlet.filter.DelegatingPluginFilter$1.doFilter(DelegatingPluginFilter.java:66) 
       at com.atlassian.prettyurls.filter.PrettyUrlsSiteMeshFixupFilter.doFilter(PrettyUrlsSiteMeshFixupFilter.java:36) 
       at com.atlassian.plugin.servlet.filter.DelegatingPluginFilter.doFilter(DelegatingPluginFilter.java:74) 
       at com.atlassian.plugin.servlet.filter.IteratingFilterChain.doFilter(IteratingFilterChain.java:42) 
       at com.atlassian.plugin.servlet.filter.DelegatingPluginFilter$1.doFilter(DelegatingPluginFilter.java:66) 
       at com.atlassian.prettyurls.filter.PrettyUrlsDispatcherFilter.doFilter(PrettyUrlsDispatcherFilter.java:60) 
       at com.atlassian.plugin.servlet.filter.DelegatingPluginFilter.doFilter(DelegatingPluginFilter.java:74) 
       at com.atlassian.plugin.servlet.filter.IteratingFilterChain.doFilter(IteratingFilterChain.java:42) 
       at com.atlassian.plugin.servlet.filter.DelegatingPluginFilter$1.doFilter(DelegatingPluginFilter.java:66) 
       at com.atlassian.prettyurls.filter.PrettyUrlsSiteMeshFilter.doFilter(PrettyUrlsSiteMeshFilter.java:92) 
       at com.atlassian.plugin.servlet.filter.DelegatingPluginFilter.doFilter(DelegatingPluginFilter.java:74) 
       at com.atlassian.plugin.servlet.filter.IteratingFilterChain.doFilter(IteratingFilterChain.java:42) 
       at com.atlassian.plugin.servlet.filter.DelegatingPluginFilter$1.doFilter(DelegatingPluginFilter.java:66) 
       at com.atlassian.prettyurls.filter.PrettyUrlsMatcherFilter.doFilter(PrettyUrlsMatcherFilter.java:56) 
       at com.atlassian.plugin.servlet.filter.DelegatingPluginFilter.doFilter(DelegatingPluginFilter.java:74) 
       at com.atlassian.plugin.servlet.filter.IteratingFilterChain.doFilter(IteratingFilterChain.java:42) 
       at com.atlassian.plugin.servlet.filter.ServletFilterModuleContainerFilter.doFilter(ServletFilterModuleContainerFilter.java:77) 
       at com.atlassian.plugin.servlet.filter.ServletFilterModuleContainerFilter.doFilter(ServletFilterModuleContainerFilter.java:63) 
       at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243) 
       at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210) 
       at com.opensymphony.sitemesh.webapp.SiteMeshFilter.obtainContent(SiteMeshFilter.java:129) 
       at com.opensymphony.sitemesh.webapp.SiteMeshFilter.doFilter(SiteMeshFilter.java:77) 
       at com.atlassian.confluence.util.profiling.ProfilingPageFilter.doFilter(ProfilingPageFilter.java:44) 
       at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243) 
       at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210) 
       at com.atlassian.plugin.servlet.filter.IteratingFilterChain.doFilter(IteratingFilterChain.java:46) 
       at com.atlassian.plugin.servlet.filter.DelegatingPluginFilter$1.doFilter(DelegatingPluginFilter.java:66) 
       at com.atlassian.prettyurls.filter.PrettyUrlsCombinedMatchDispatcherFilter.doFilter(PrettyUrlsCombinedMatchDispatcherFilter.java:61) 
       at com.atlassian.plugin.servlet.filter.DelegatingPluginFilter.doFilter(DelegatingPluginFilter.java:74) 
       at com.atlassian.plugin.servlet.filter.IteratingFilterChain.doFilter(IteratingFilterChain.java:42) 
       at com.atlassian.plugin.servlet.filter.ServletFilterModuleContainerFilter.doFilter(ServletFilterModuleContainerFilter.java:77) 
       at com.atlassian.plugin.servlet.filter.ServletFilterModuleContainerFilter.doFilter(ServletFilterModuleContainerFilter.java:63) 
       at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243) 
       at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210) 
       at com.atlassian.confluence.cache.TransactionalCacheFactoryCleanupFilter.doFilter(TransactionalCacheFactoryCleanupFilter.java:68) 
       at com.atlassian.core.filters.AbstractHttpFilter.doFilter(AbstractHttpFilter.java:31) 
       at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243) 
       at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210) 
       at com.atlassian.core.filters.ServletContextThreadLocalFilter.doFilter(ServletContextThreadLocalFilter.java:21) 
       at com.atlassian.core.filters.AbstractHttpFilter.doFilter(AbstractHttpFilter.java:31) 
       at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243) 
       at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210) 
       at com.atlassian.confluence.util.LoggingContextFilter.doFilter(LoggingContextFilter.java:40) 
       at com.atlassian.core.filters.AbstractHttpFilter.doFilter(AbstractHttpFilter.java:31) 
       at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243) 
       at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210) 
       at com.atlassian.confluence.util.UserNameHeaderFilter.doFilter(UserNameHeaderFilter.java:26) 
       at com.atlassian.core.filters.AbstractHttpFilter.doFilter(AbstractHttpFilter.java:31) 
       at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243) 
       at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210) 
       at com.atlassian.confluence.web.filter.ConfluenceTimeoutFilter.doFilter(ConfluenceTimeoutFilter.java:63) 
       at com.atlassian.core.filters.AbstractHttpFilter.doFilter(AbstractHttpFilter.java:31) 
       at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243) 
       at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210) 
       at com.atlassian.seraph.filter.SecurityFilter.doFilter(SecurityFilter.java:211) 
       at com.atlassian.confluence.web.filter.ConfluenceSecurityFilter.doFilter(ConfluenceSecurityFilter.java:27) 
       at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243) 
       at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210) 
       at com.atlassian.confluence.web.filter.ThreadLocalCacheFilter.doFilter(ThreadLocalCacheFilter.java:28) 
       at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243) 
       at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210) 
       at com.atlassian.security.auth.trustedapps.filter.TrustedApplicationsFilter.doFilter(TrustedApplicationsFilter.java:100) 
       at com.atlassian.confluence.util.AbstractBootstrapHotSwappingFilter.doFilter(AbstractBootstrapHotSwappingFilter.java:34) 
       at com.atlassian.core.filters.AbstractHttpFilter.doFilter(AbstractHttpFilter.java:31) 
       at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243) 
       at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210) 
       at com.atlassian.seraph.filter.BaseLoginFilter.doFilter(BaseLoginFilter.java:150) 
       at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243) 
       at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210) 
       at com.atlassian.plugin.servlet.filter.IteratingFilterChain.doFilter(IteratingFilterChain.java:46) 
       at com.atlassian.plugin.servlet.filter.DelegatingPluginFilter$1.doFilter(DelegatingPluginFilter.java:66) 
       at com.atlassian.oauth.serviceprovider.internal.servlet.OAuthFilter.doFilter(OAuthFilter.java:61) 
       at com.atlassian.plugin.servlet.filter.DelegatingPluginFilter.doFilter(DelegatingPluginFilter.java:74) 
       at com.atlassian.plugin.servlet.filter.IteratingFilterChain.doFilter(IteratingFilterChain.java:42) 
       at com.atlassian.plugin.servlet.filter.DelegatingPluginFilter$1.doFilter(DelegatingPluginFilter.java:66) 
       at com.atlassian.plugins.rest.module.servlet.RestSeraphFilter.doFilter(RestSeraphFilter.java:44) 
       at com.atlassian.plugin.servlet.filter.DelegatingPluginFilter.doFilter(DelegatingPluginFilter.java:74) 
       at com.atlassian.plugin.servlet.filter.IteratingFilterChain.doFilter(IteratingFilterChain.java:42) 
       at com.atlassian.plugin.servlet.filter.DelegatingPluginFilter$1.doFilter(DelegatingPluginFilter.java:66) 
       at com.atlassian.prettyurls.filter.PrettyUrlsCombinedMatchDispatcherFilter.doFilter(PrettyUrlsCombinedMatchDispatcherFilter.java:61) 
       at com.atlassian.plugin.servlet.filter.DelegatingPluginFilter.doFilter(DelegatingPluginFilter.java:74) 
       at com.atlassian.plugin.servlet.filter.IteratingFilterChain.doFilter(IteratingFilterChain.java:42) 
       at com.atlassian.plugin.servlet.filter.ServletFilterModuleContainerFilter.doFilter(ServletFilterModuleContainerFilter.java:77) 
       at com.atlassian.plugin.servlet.filter.ServletFilterModuleContainerFilter.doFilter(ServletFilterModuleContainerFilter.java:63) 
       at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243) 
       at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210) 
       at com.atlassian.confluence.util.ClusterHeaderFilter.doFilter(ClusterHeaderFilter.java:42) 
       at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243) 
       at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210) 
       at org.springframework.orm.hibernate.support.OpenSessionInViewFilter.doFilterInternal(OpenSessionInViewFilter.java:170) 
       at com.atlassian.spring.filter.FlushingSpringSessionInViewFilter.doFilterInternal(FlushingSpringSessionInViewFilter.java:29) 
       at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:76) 
       at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243) 
       at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210) 
       at com.atlassian.util.profiling.filters.ProfilingFilter.doFilter(ProfilingFilter.java:99) 
       at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243) 
       at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210) 
       at com.atlassian.gzipfilter.GzipFilter.doFilterInternal(GzipFilter.java:80) 
       at com.atlassian.gzipfilter.GzipFilter.doFilter(GzipFilter.java:51) 
       at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243) 
       at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210) 
       at com.atlassian.core.filters.cache.AbstractCachingFilter.doFilter(AbstractCachingFilter.java:33) 
       at com.atlassian.core.filters.AbstractHttpFilter.doFilter(AbstractHttpFilter.java:31) 
       at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243) 
       at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210) 
       at com.atlassian.plugin.servlet.filter.IteratingFilterChain.doFilter(IteratingFilterChain.java:46) 
       at com.atlassian.plugin.servlet.filter.DelegatingPluginFilter$1.doFilter(DelegatingPluginFilter.java:66) 
       at com.atlassian.confluence.web.filter.ConfluenceTimingFilter.doFilter(ConfluenceTimingFilter.java:79) 
       at com.atlassian.plugin.servlet.filter.DelegatingPluginFilter.doFilter(DelegatingPluginFilter.java:74) 
       at com.atlassian.plugin.servlet.filter.IteratingFilterChain.doFilter(IteratingFilterChain.java:42) 
       at com.atlassian.plugin.servlet.filter.DelegatingPluginFilter$1.doFilter(DelegatingPluginFilter.java:66) 
       at com.atlassian.prettyurls.filter.PrettyUrlsCombinedMatchDispatcherFilter.doFilter(PrettyUrlsCombinedMatchDispatcherFilter.java:61) 
       at com.atlassian.plugin.servlet.filter.DelegatingPluginFilter.doFilter(DelegatingPluginFilter.java:74) 
       at com.atlassian.plugin.servlet.filter.IteratingFilterChain.doFilter(IteratingFilterChain.java:42) 
       at com.atlassian.plugin.servlet.filter.DelegatingPluginFilter$1.doFilter(DelegatingPluginFilter.java:66) 
       at com.atlassian.confluence.extra.webdav.servlet.filter.ReverseProxyFilter.doFilter(ReverseProxyFilter.java:427) 
       at com.atlassian.confluence.extra.webdav.servlet.filter.AbstractHttpFilter.doFilter(AbstractHttpFilter.java:34) 
       at com.atlassian.plugin.servlet.filter.DelegatingPluginFilter.doFilter(DelegatingPluginFilter.java:74) 
       at com.atlassian.plugin.servlet.filter.IteratingFilterChain.doFilter(IteratingFilterChain.java:42) 
       at com.atlassian.plugin.servlet.filter.ServletFilterModuleContainerFilter.doFilter(ServletFilterModuleContainerFilter.java:77) 
       at com.atlassian.plugin.servlet.filter.ServletFilterModuleContainerFilter.doFilter(ServletFilterModuleContainerFilter.java:63) 
       at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243) 
       at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210) 
       at com.atlassian.confluence.web.filter.validateparam.RequestParamValidationFilter.doFilter(RequestParamValidationFilter.java:58) 
       at com.atlassian.core.filters.AbstractHttpFilter.doFilter(AbstractHttpFilter.java:31) 
       at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243) 
       at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210) 
       at com.atlassian.confluence.web.filter.TranslationModeFilter.doFilter(TranslationModeFilter.java:43) 
       at com.atlassian.core.filters.AbstractHttpFilter.doFilter(AbstractHttpFilter.java:31) 
       at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243) 
       at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210) 
       at com.atlassian.confluence.plugin.servlet.filter.ActionContextCleanUp.doFilter(ActionContextCleanUp.java:71) 
       at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243) 
       at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210) 
       at com.atlassian.confluence.web.filter.LanguageExtractionFilter.doFilter(LanguageExtractionFilter.java:53) 
       at com.atlassian.core.filters.AbstractHttpFilter.doFilter(AbstractHttpFilter.java:31) 
       at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243) 
       at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210) 
       at com.atlassian.confluence.util.RequestCacheThreadLocalFilter.doFilter(RequestCacheThreadLocalFilter.java:31) 
       at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243) 
       at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210) 
       at com.atlassian.confluence.web.filter.ResponseOutputStreamFilter.doFilter(ResponseOutputStreamFilter.java:25) 
       at com.atlassian.core.filters.AbstractHttpFilter.doFilter(AbstractHttpFilter.java:31) 
       at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243) 
       at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210) 
       at com.atlassian.core.filters.HeaderSanitisingFilter.doFilter(HeaderSanitisingFilter.java:44) 
       at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243) 
       at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210) 
       at com.atlassian.confluence.servlet.FourOhFourErrorLoggingFilter.doFilter(FourOhFourErrorLoggingFilter.java:65) 
       at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243) 
       at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210) 
       at com.atlassian.confluence.web.filter.DebugFilter.doFilter(DebugFilter.java:50) 
       at com.atlassian.core.filters.AbstractHttpFilter.doFilter(AbstractHttpFilter.java:31) 
       at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243) 
       at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210) 
       at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:222) 
       at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:123) 
       at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:502) 
       at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:171) 
       at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:100) 
       at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118) 
       at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:408) 
       at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1041) 
       at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:603) 
       at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:310) 
       at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145) 
       at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615) 
       at java.lang.Thread.run(Thread.java:722) 

有效載荷在Wireshark的不行......

PUT/REST/API /內容/?os_username = jp @ com & os_password = patterns HTTP/1.1 \ r \ n Content-Type:application/連接:保活 的Content-Length:141

回答

5

我需要給予信貸Atlassian的約瑟夫·克拉克對他的回答......

下面是一些示例代碼,我寫它演示瞭如何使用Confluence的REST API把一個頁面的新版本:

https://bitbucket.org/jaysee00/confluence-rest-api-example/src/master/src/main/java/com/atlassian/api/examples/Main.java

https://answers.atlassian.com/questions/312039/how-to-update-a-page-in-confluence-5-5-3-via-rest-call

我會把主要。Java代碼在這裏保持在一個地方的答案。

public class Main 
{ 
    private static final String BASE_URL = "http://x.x.x.x/"; 
    private static final String USERNAME = "[email protected]"; 
    private static final String PASSWORD = "pat"; 
    private static final String ENCODING = "utf-8"; 

    private static String getContentRestUrl(final Long contentId, final String[] expansions) throws UnsupportedEncodingException 
    { 
     final String expand = URLEncoder.encode(StringUtils.join(expansions, ","), ENCODING); 

     return String.format("%s/rest/api/content/%s?expand=%s&os_authType=basic&os_username=%s&os_password=%s", BASE_URL, contentId, expand, URLEncoder.encode(USERNAME, ENCODING), URLEncoder.encode(PASSWORD, ENCODING)); 
    } 

    public static void main(final String[] args) throws Exception 
    { 
     final long pageId = 8226411; 

     HttpClient client = new DefaultHttpClient(); 

     // Get current page version 
     String pageObj = null; 
     HttpEntity pageEntity = null; 
     try 
     { 
      HttpGet getPageRequest = new HttpGet(getContentRestUrl(pageId, new String[] {"body.storage", "version"})); 
      HttpResponse getPageResponse = client.execute(getPageRequest); 
      pageEntity = getPageResponse.getEntity(); 

      pageObj = IOUtils.toString(pageEntity.getContent()); 

      System.out.println("Get Page Request returned " + getPageResponse.getStatusLine().toString()); 
      System.out.println(""); 
      System.out.println(pageObj); 
     } 
     finally 
     { 
      if (pageEntity != null) 
      { 
       EntityUtils.consume(pageEntity); 
      } 
     } 

     // Parse response into JSON 
     JSONObject page = new JSONObject(pageObj); 

     // Update page 
     // The updated value must be Confluence Storage Format (https://confluence.atlassian.com/display/DOC/Confluence+Storage+Format), NOT HTML. 
     page.getJSONObject("body").getJSONObject("storage").put("value", "hello, world"); 

     int currentVersion = page.getJSONObject("version").getInt("number"); 
     page.getJSONObject("version").put("number", currentVersion + 1); 

     // Send update request 
     HttpEntity putPageEntity = null; 

     try 
     { 
      HttpPut putPageRequest = new HttpPut(getContentRestUrl(pageId, new String[]{})); 

      StringEntity entity = new StringEntity(page.toString(), ContentType.APPLICATION_JSON); 
      putPageRequest.setEntity(entity); 

      HttpResponse putPageResponse = client.execute(putPageRequest); 
      putPageEntity = putPageResponse.getEntity(); 

      System.out.println("Put Page Request returned " + putPageResponse.getStatusLine().toString()); 
      System.out.println(""); 
      System.out.println(IOUtils.toString(putPageEntity.getContent())); 
     } 
     finally 
     { 
      EntityUtils.consume(putPageEntity); 
     } 
    } 
} 
+0

謝謝。這在本地運行很好(mac)。但在linux上,我收到以下錯誤:09:45:43,418 [main] DEBUG BasicClientConnectionManager:201 - 釋放連接[email protected] javax.net.ssl.SSLHandshakeException:sun.security .validator.ValidatorException:PKIX路徑構建失敗:sun.security.provider.certpath.SunCertPathBuilderException:在sun.security.ssl.Alerts.getSSLException(Unknown Source)無法找到所請求目標的有效證書路徑您是否有支持的示例SSL或證書? – Mick

1

你寫,你要創建一個頁面,但合流REST API需要POST用於創建新的內容,而不是一個PUT(這是更新現有內容)。

換句話說,將請求方法更改爲POST,並確保您沒有在URL中指定內容標識。即。使用「xxxx/rest/api/content」而不是「xxxx/rest/api/content/8226411」

如果這樣不行,還要看看現有的PUT( - > POST)已經提供了包含在我的'捲曲'例子中的全套標題,其答案是related question

+0

你是對的,我應該在我的問題中使用「更新」而不是「創建」。無論哪種情況都會導致500錯誤。 –

+0

好的。你可以發佈你的PUT代碼嗎?另外,500錯誤響應的內容是什麼? Atlassian應用程序經常使用這些API來指示API調用出了什麼問題。 –

+0

我已經添加了示例代碼和響應正文。感謝您抽出寶貴時間來查看本文。 –

0

您需要將新版本號添加到更新調用中。直到我開始添加它時,我的確遇到了同樣的問題。請注意這最後部分:

{「id」:「4096014」,「type」:「page」,「title」:「NC-1」,「space」:{「key」:「OTF」 },「body」:{「storage」:{「value」:「Mike測試更新」,「representation」:「storage」}},「version」:{「number」:「3」}}