我一直在研究使用 xpages 扩展库中的关系数据访问。我让它工作,但我把罐子放在服务器上让它工作。部署 jdbc 驱动程序的推荐方法似乎是通过自定义扩展库。
是否有一些关于如何创建它的说明。我根本没有任何创建 OSGi 插件的经验,所以我在这里有点不适应。
我一直在研究使用 xpages 扩展库中的关系数据访问。我让它工作,但我把罐子放在服务器上让它工作。部署 jdbc 驱动程序的推荐方法似乎是通过自定义扩展库。
是否有一些关于如何创建它的说明。我根本没有任何创建 OSGi 插件的经验,所以我在这里有点不适应。
帕特里克,这比看起来容易。在 Eclipse(或 Domino Designer 的 Java 视图)中创建一个插件项目。在那里定义扩展点,使其成为扩展库并实现一个简单的类(主要返回版本)。
您的 plugin.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);
}
}
希望有帮助
有一个新的 OpenNTF 项目可用于为 JDBC 驱动程序创建插件。请参阅http://www.openntf.org/Internal/home.nsf/project.xsp?action=openDocument&name=XPages%20JDBC%20Driver%20Wrapper
霍华德
书中也有详细的说明,XPages Extension Library,从第 381 页开始。作者在示例中使用 DB2,但切换到 MySQL 驱动程序非常容易。