以下のコードで検証しましたが、redirectエラーが出てしまいました。
やっぱりLS2Jは、Notes JVMで動作していますね。当たり前か・・・・。
とすると、Sync用のJavaコードをキックするには、LotusScriptからShell関数を使って、Shell("java goocalsync", 1)のようにやるのか? しかし、そうすると、Notes以外の外部プロセスから、Notes上で開いているGooCalSync用NSFにアクセスすることになるので、アクセスできるのか?要検証です。
■Notes DB側
Option Public
Uselsx "*javacon"
Sub Initialize
<br/>
Dim mySession As JavaSession<br/>
Dim myClass As JavaClass<br/>
Dim myObject As JavaObject<br/>
<br/>
Set mySession = New JAVASESSION()<br/>
Set myClass = mySession.GetClass("addcal1")<br/>
Set myObject = myClass.CreateObject<br/>
Call myObject.addcalentry()<br/>
<br/>
End Sub
■Javaアプリケーション側
import com.google.gdata.client.;
import com.google.gdata.client.calendar.;
import com.google.gdata.data.;
import com.google.gdata.data.acl.;
import com.google.gdata.data.calendar.;
import com.google.gdata.data.extensions.;
import com.google.gdata.util.*;
import java.net.URL;
class addcal1 {
public static void addcalentry(){<br/>
try {<br/>
<br/>
CalendarService myService = new CalendarService("OpenNTF-GooCalSyncTest-0.1");<br/>
myService.setUserCredentials("GooCalSync@gmail.com", "lotus123");<br/>
URL postUrl = new URL("http://www.google.com/calendar/feeds/GooCalSync@gmail.com/private/full");
EventEntry myEntry = new EventEntry();<br/>
myEntry.setTitle(new PlainTextConstruct("Test by M.Ohkawa"));<br/>
myEntry.setContent(new PlainTextConstruct("Hello World !!!."));<br/>
com.google.gdata.data.DateTime startTime = com.google.gdata.data.DateTime.parseDateTime("2009-04-18T15:00:00-08:00");<br/>
com.google.gdata.data.DateTime endTime = com.google.gdata.data.DateTime.parseDateTime("2009-04-18T17:00:00-08:00");<br/>
<br/>
When eventTimes = new When();<br/>
eventTimes.setStartTime(startTime);<br/>
eventTimes.setEndTime(endTime);<br/>
myEntry.addTime(eventTimes);<br/>
// Send the request and receive the response:<br/>
System.out.println("Posting calendar data....");<br/>
EventEntry insertedEntry = myService.insert(postUrl, myEntry);<br/>
System.out.println("Finished!");<br/>
} catch (ServiceException se) {<br/>
System.out.println("ServiceException is caught by Google Data API ");<br/>
se.printStackTrace();<br/>
} catch(Exception e) {<br/>
e.printStackTrace();<br/>
}<br/>
}<br/>
}