我一直在寻找在xpages扩展库中使用关系数据访问。我有它工作,但我把jar放在服务器上让它工作。部署jdbc驱动程序的推荐方法似乎是通过自定义扩展库。
是否存在关于如何创建此内容的一些说明。我根本没有任何创建OSGi插件的经验,所以我在这里有点不合时宜。
答案 0 :(得分:2)
帕特里克 它比看起来容易。在Eclipse(或Domino Designer的Java视图)中,您可以创建一个插件项目。在那里,您定义扩展点,使其成为扩展库并实现一个简单的类(主要返回版本)。
您的plug-in.xml看起来像这样(您可能还有其他内容):
<?xml version="1.0" encoding="UTF-8"?>
<?eclipse version="3.4"?>
<plugin>
<!-- This makes the plug-in an XPages extension library -->
<extension point="com.ibm.commons.Extension">
<service class="com.ibm.ctp.CoreLibrary" type="com.ibm.xsp.Library">
</service>
</extension>
</plugin>
在清单中(Eclipse有一个很好的编辑器,所以不用担心),确保导出JDBC驱动程序包,使它们变得可见。最后你的激活类看起来像这样:
import org.eclipse.core.runtime.Plugin;
import org.osgi.framework.BundleContext;
public class Activator extends Plugin {
// The shared instance
private static Activator plugin;
private static String version;
/**
* Returns the shared instance
*
* @return the shared instance
*/
public static CSIActivator getDefault() {
return plugin;
}
public static String getVersion() {
if (version == null) {
try {
version = plugin.getBundle().getHeaders().get("Bundle-Version").toString();
} catch (Exception e) {
e.printStackTrace();
version = "3.7.2";
}
}
return version;
}
public Activator() {
// No Action needed
}
/* (non-Javadoc)
* @see org.eclipse.core.runtime.Plugin#start(org.osgi.framework.BundleContext)
*/
@Override
public void start(final BundleContext context) throws Exception {
super.start(context);
plugin = this;
}
/* (non-Javadoc)
* @see org.eclipse.core.runtime.Plugin#stop(org.osgi.framework.BundleContext)
*/
@Override
public void stop(final BundleContext context) throws Exception {
plugin = null;
super.stop(context);
}
}
希望有所帮助
答案 1 :(得分:1)
本书中还有详细的说明XPages Extension Library,从第381页开始。作者在示例中使用了DB2,但切换到MySQL驱动程序非常容易。
答案 2 :(得分:1)
有一个新的OpenNTF项目可用于创建JDBC驱动程序的插件。见http://www.openntf.org/Internal/home.nsf/project.xsp?action=openDocument&name=XPages%20JDBC%20Driver%20Wrapper
霍华德