<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Blog @ SIB Visions &#187; DokuWiki</title>
	<atom:link href="http://blog.sibvisions.com/tag/dokuwiki/feed/" rel="self" type="application/rss+xml" />
	<link>https://blog.sibvisions.com</link>
	<description>Blog @ SIB Visions</description>
	<lastBuildDate>Mon, 30 Mar 2026 11:14:36 +0000</lastBuildDate>
		<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>DokuWiki XMLRPC with Java</title>
		<link>https://blog.sibvisions.com/2018/01/31/dokuwiki-xmlrpc-with-java/</link>
		<comments>https://blog.sibvisions.com/2018/01/31/dokuwiki-xmlrpc-with-java/#comments</comments>
		<pubDate>Wed, 31 Jan 2018 07:23:26 +0000</pubDate>
		<dc:creator>rjahn</dc:creator>
				<category><![CDATA[Development]]></category>
		<category><![CDATA[DokuWiki]]></category>

		<guid isPermaLink="false">https://blog.sibvisions.com/?p=7781</guid>
		<description><![CDATA[DokuWiki 
is a simple to use and highly versatile Open Source wiki software that doesn't require a database. 
It's a really nice software for your documentation. The default theme isn't super modern, but it works. There are many custom themes available and styling is simple.
The really cool thing is the remote API of DokuWiki. It [...]]]></description>
			<content:encoded><![CDATA[<p><a href="https://www.dokuwiki.org">DokuWiki</a> </p>
<blockquote><p>is a simple to use and highly versatile Open Source wiki software that doesn't require a database. </p></blockquote>
<p>It's a really nice software for your documentation. The default theme isn't super modern, but it works. There are many custom themes available and styling is simple.</p>
<p>The really cool thing is the remote API of DokuWiki. It has a <a href="https://en.wikipedia.org/wiki/XML-RPC">XML based RPC</a> interface. <a href="https://www.dokuwiki.org/devel:xmlrpc">Here are some details</a>.</p>
<p>The documentation looks promise. There's a Java example <img src='https://blog.sibvisions.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /><br />
But the last update of the Java client was 2016 <img src='https://blog.sibvisions.com/wp-includes/images/smilies/icon_sad.gif' alt=':(' class='wp-smiley' /> </p>
<p>After downloading and testing the client, it was clear that it doesn't work. It had a problem with cookie management. I tried to fix the problem in the base lib - <a href="https://github.com/gturri/aXMLRPC">aXMLRPC</a> but it was tricky. The problem was the standard Http URL connection. After replacing it with <a href="https://hc.apache.org/">Apache HttpClient</a>, the <a href="https://github.com/gturri/dokuJClient">dokujclient</a> was working without problems.<br />
I didn't try to find the root cause of the problem because it wasn't worth the time. It was faster to replace the communication part.</p>
<p>Here's a <a href="https://blog.sibvisions.com/wp-content/uploads/2018/01/dokujclient_sib.zip">link to our patch</a> and all required libraries (pre-built).</p>
<p>Here's a short snippet</p>
<div class="codesnip-container" >
<div class="java codesnip" style="font-family:monospace;">DokuJClient client <span class="sy0">=</span> <span class="kw1">new</span> DokuJClient<span class="br0">&#40;</span>url<span class="br0">&#41;</span><span class="sy0">;</span><br />
client.<span class="me1">login</span><span class="br0">&#40;</span>username, password<span class="br0">&#41;</span><span class="sy0">;</span></p>
<p>client.<span class="me1">putPage</span><span class="br0">&#40;</span>pNamespace <span class="sy0">+</span> <span class="st0">&quot;:&quot;</span> <span class="sy0">+</span> pPageName, sText<span class="br0">&#41;</span><span class="sy0">;</span></p>
<p>FileSearch fs <span class="sy0">=</span> <span class="kw1">new</span> FileSearch<span class="br0">&#40;</span><span class="br0">&#41;</span><span class="sy0">;</span><br />
fs.<span class="me1">search</span><span class="br0">&#40;</span>dirImages, <span class="kw2">true</span><span class="br0">&#41;</span><span class="sy0">;</span></p>
<p><span class="kw1">for</span> <span class="br0">&#40;</span><span class="kw3">String</span> file <span class="sy0">:</span> fs.<span class="me1">getFoundFiles</span><span class="br0">&#40;</span><span class="br0">&#41;</span><span class="br0">&#41;</span><br />
<span class="br0">&#123;</span><br />
&nbsp; &nbsp; client.<span class="me1">putAttachment</span><span class="br0">&#40;</span>pNamespace <span class="sy0">+</span> <span class="st0">&quot;:&quot;</span> <span class="sy0">+</span> pPageName <span class="sy0">+</span> <span class="st0">&quot;:&quot;</span> <span class="sy0">+</span> FileUtil.<span class="me1">getName</span><span class="br0">&#40;</span>file<span class="br0">&#41;</span>, <br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;file, <span class="kw2">true</span><span class="br0">&#41;</span><span class="sy0">;</span><br />
<span class="br0">&#125;</span></p>
<p>client.<span class="me1">logoff</span><span class="br0">&#40;</span><span class="br0">&#41;</span><span class="sy0">;</span></div>
</div>
<p>We use the remote interface for automatic article updates. It works great!</p>
]]></content:encoded>
			<wfw:commentRss>https://blog.sibvisions.com/2018/01/31/dokuwiki-xmlrpc-with-java/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
