小编Jee*_*tha的帖子

使用Maven构建OSGi应用程序

我想构建一个符合OSGi标准的多模块应用程序,我在编译后将所有必需的包捆绑在3个文件夹中.我正在使用maven-bundle-pluginmaven-scr-plugin来创建捆绑包.

我想要的是用一个命令在一个osgi容器(Equinox)中运行这个应用程序,希望使用一个脚本.为此我相信我必须创建一个config.ini文件,列出应用程序中的所有bundle.

有没有办法在Maven编译时自己生成这个?或者有更好的方法来获取某些文件夹结构中的所有包,以便应用程序可以立即运行?

java osgi maven maven-bundle-plugin

10
推荐指数
2
解决办法
6647
查看次数

OCSP响应未提供证书状态

我使用Bouncy castle API创建了一个OCSP客户端.我无法从OCSP响应中找到证书状态(说是否已撤销).resp.getCertStatus()返回的值始终为null.这就是我创建OCSP请求的方式.

    private OCSPReq generateOCSPRequest(X509Certificate issuerCert, BigInteger serialNumber)
        throws CertificateVerificationException {

    //Add provider BC
    Security.addProvider(new org.bouncycastle.jce.provider.BouncyCastleProvider());
    try {
        //  CertID structure is used to uniquely identify certificates that are the subject of
        // an OCSP request or response and has an ASN.1 definition. CertID structure is defined in RFC 2560
        CertificateID id = new CertificateID(CertificateID.HASH_SHA1, issuerCert, serialNumber);

        // basic request generation with nonce
        OCSPReqGenerator generator = new OCSPReqGenerator();
        generator.addRequest(id);

        // create details for nonce extension. The nonce extension is …
Run Code Online (Sandbox Code Playgroud)

bouncycastle ocsp

9
推荐指数
1
解决办法
6164
查看次数

在java中编写GIT预提交钩子?

我需要用Java编写一个Git预提交钩子,如果由开发商COMMITED代码根据特定的格式,其将检查Eclipse代码格式化实际上commiting之前,否则从commiting拒绝它.是否可以在Java中编写预提交钩子?

java git pre-commit-hook

6
推荐指数
2
解决办法
4105
查看次数

获取排序组合数的算法?

假设有"n"个数字,我们从中选择"p"数字(p小于n),以便对所选的"p"数进行排序.可以重复选定的号码.我们如何计算我们可以选择的组合数量?例如,如果我们有一组数字说{1,2,3,4,5,6}(n = 6),我们将从集合中选择3个数字(p = 3)进行排序.所以我们可以{1,2,3},{1,1,2},{2,3,6},{4,5,5},{5,5,5} .......由于所有这些组合都已排序,因此它们是有效的.我们怎样才能找到我们可以得到的这种分类组合数量


我从排序的话,意思是说,当我们选择p从元素组数字ñ元素,所选择的p元素应该进行排序.

举一个小例子:

如果集合是{1,2,3,4}(所以n = 4)并且我们要选择3个元素(p = 3),那么我们可以选择p个元素(替换)的方式的数量4*4*4=64.所以选择将有{1,1,1},{1,1,2},{1,1,3}{1,1,4},{1,2,1}.....{3,1,1}...{4,4,4}.但在这些选择中,并非所有选择都已排序.在这个例子中,{1,2,1}{3,1,1}没有排序.

我想获得排序选择的数量.
谢谢.

algorithm combinations sorted

4
推荐指数
1
解决办法
1972
查看次数

Parent Last Classloader 解决Java类路径地狱?

我有一个项目使用两个版本的 bouncyCastle jars bcprov-jdk15 和 bcprov-jdk16。jvm 加载旧版本,但我编写的一个功能需要更新版本才能运行。我尝试使用自定义类加载器来解决这个类路径地狱。经过一番谷歌搜索并在以前的一些 Stackoverflow 答案[1] [2]和本博客的帮助下,我编写了以下Parent Last Class loader ,在委托给父类加载器之前从较新的 jar 中加载类。

public class ParentLastClassLoader extends ClassLoader {

    private String jarFile; //Path to the jar file
    private Hashtable classes = new Hashtable(); //used to cache already defined classes

    public ParentLastClassLoader(ClassLoader parent, String path)
    {
        super(parent);
        this.jarFile = path;
    }

    @Override
    public Class<?> findClass(String name) throws ClassNotFoundException
    {
        System.out.println("Trying to find");
        throw new ClassNotFoundException();
    }

    @Override
    protected synchronized Class<?> loadClass(String className, boolean …
Run Code Online (Sandbox Code Playgroud)

java bouncycastle classpath classloader

2
推荐指数
1
解决办法
5359
查看次数

如何在所有捆绑包启动后调用osgi应用程序的start方法?

我有一个在equinox上运行的osgi应用程序.这就是bundle在bootstrap类中的启动方式.

String[] equinoxArgs = new String[]{"-console"};
EclipseStarter.setInitialProperties(getInitialProperties());
BundleContext context = EclipseStarter.startup(equinoxArgs, null);
List<URL> urls = getListOfBundleUrls();
   for(URL url: urls) {
       Bundle bundle = context.installBundle(url.toString());
       bundle.start();
   }
Run Code Online (Sandbox Code Playgroud)

我的应用程序中有一个启动方法在其中一个包中.在启动所有bundle以运行应用程序之后,应调用此方法.当在引导类中调用该方法时,它会给出一个错误,指出在类路径中找不到某些类.这是堆栈跟踪.

Initial SessionFactory creation failed.org.hibernate.service.classloading.spi.ClassLoadingException: Specified JDBC Driver com.mysql.jdbc.Driver class not found
Exception in thread "main" java.lang.ExceptionInInitializerError
at com.cc.erp.platform.dbutils.services.BasicDBManager.buildSessionFactory(BasicDBManager.java:26)
at com.cc.erp.platform.dbutils.services.BasicDBManager.<clinit>(BasicDBManager.java:12)
at com.cc.erp.platform.dbutils.DBAgent.getNewCRUDService(DBAgent.java:19)
at com.cc.erp.reload.core.WebService.forQuery(WebService.java:51)
at com.cc.erp.reload.ui.CommandLineUserInterface.<init>(CommandLineUserInterface.java:27)
at com.cc.erp.helius.bootstrap.Bootstrap.launchHelius(Bootstrap.java:41)
at com.cc.erp.helius.bootstrap.Bootstrap.main(Bootstrap.java:22)
Caused by: org.hibernate.service.classloading.spi.ClassLoadingException: Specified JDBC Driver com.mysql.jdbc.Driver class not found
at org.hibernate.service.jdbc.connections.internal.DriverManagerConnectionProviderImpl.configure(DriverManagerConnectionProviderImpl.java:107)
at org.hibernate.service.internal.StandardServiceRegistryImpl.configureService(StandardServiceRegistryImpl.java:75)
at org.hibernate.service.internal.AbstractServiceRegistryImpl.initializeService(AbstractServiceRegistryImpl.java:159)
at org.hibernate.service.internal.AbstractServiceRegistryImpl.getService(AbstractServiceRegistryImpl.java:131)
at org.hibernate.engine.jdbc.internal.JdbcServicesImpl.buildJdbcConnectionAccess(JdbcServicesImpl.java:223)
at org.hibernate.engine.jdbc.internal.JdbcServicesImpl.configure(JdbcServicesImpl.java:89)
Run Code Online (Sandbox Code Playgroud)

包com.mysql.jdbc在osgi运行时中导出.但它不是在bootstrap类路径中.我相信这个方法应该从框架本身调用.请告诉我最好的方法.

java osgi equinox

0
推荐指数
1
解决办法
469
查看次数