2016-01-18 159 views
2

我使用下面库休息web服务无法注册org.restlet.ext.ssl.HttpsClientHelper

commons-beanutils-1.7.0.jar 
commons-collections-3.2.jar 
commons-dbcp-1.2.2.jar 
commons-io-1.3.1.jar 
commons-lang-2_3.jar 
commons-logging-1.1.1.jar 
commons-pool-1.2.jar 
com.noelios.restlet.ext.spring_2.5.jar 
com.noelios.restlet.ext.ssl.jar 
com.noelios.restlet.jar 
CopyLibs/ 
ezmorph-1.0.6.jar 
httpclient-4.1.1.jar 
httpcore-4.1.jar 
ibatis-2.3.4.726.jar 
jaxb-api-2.1.jar 
jaxb-impl-2.1.12.jar 
jetty-server-9.0.0.rc0.jar 
jetty-util-9.3.0.M1.jar 
jsr311-api-1.1.jar 
log4j-1.2.16.jar 
mysql-connector-java-5.1.9.jar 
nblibraries.properties 
org.eclipse.jetty.ajp.jar 
org.eclipse.jetty.server.jar 
org.json.jar 
org.restlet-2.0.5.jar 
org.restlet.ext.httpclient.jar 
org.restlet.ext.jaxb_2.1.jar 
org.restlet.ext.jaxrs_1.0.jar 
org.restlet.ext.jetty-2.0.3.jar 
org.restlet.ext.json_2.0.jar 
org.restlet.ext.spring_2.5.jar 
org.restlet.ext.ssl.jar 
org.restlet.jar 
servlet.jar 
spring.jar 

的帮手,当我尝试执行返回

信息:无法注册助手org.restlet.ext.ssl.HttpsClientHelper java.lang.NoClassDefFoundError:组织/的Restlet /发动机/连接器/ ClientConnectionHelper

我已经试图改变我的org.restlet.jar,但它不可能与我下面的类..

import org.restlet.Application; 
import org.restlet.Context; 
import org.restlet.Filter; 
import org.restlet.Redirector; 
import org.restlet.Restlet; 
import org.restlet.Router; 
import org.restlet.ext.jaxrs.JaxRsApplication; 
import org.restlet.util.Template; 

public class MyJaxApplication extends JaxRsApplication { 
    Filter filter; 
    Context context; 
    String homeUrl; 

    public MyJaxApplication(Context createChildContext, Filter filter, 
      String homeUrl) { 
     super(createChildContext); 
     this.context = createChildContext; 
     this.filter = filter; 
     this.homeUrl = homeUrl; 
    } 

    @Override 
    public Restlet createRoot() { 
     Router router = new Router(getContext()); 

     Application application = new Application(context) { 
        @Override 
        public Restlet createRoot() { 
         String target = homeUrl; 
         return new Redirector(getContext(), target, 
             Redirector.MODE_CLIENT_TEMPORARY); 
        } 
     }; 
     router.attach("/", application).getTemplate().setMatchingMode(
       Template.MODE_EQUALS); 

     if (filter != null) { 
        filter.setNext(super.createRoot()); 
        router.attach(filter); 
     } else { 
        router.attach(super.createRoot()); 
     } 
     return router; 
    } 

} 

服务器配置:

<bean id="restletServer" class="org.restlet.ext.spring.SpringServer"> 
     <constructor-arg value="https" /> 
     <constructor-arg value="3442" /> 
     <property name="parameters"> 
      <props> 
       <prop key="sslContextFactory">org.restlet.engine.ssl.DefaultSslContextFactory</prop> 
       <prop key="keyStorePath">conf/keystore.jks</prop> 
       <prop key="keyStorePassword">password</prop> 
       <prop key="keyPassword">password</prop> 
       <prop key="keyStoreType">JKS</prop> 
      </props> 
     </property> 
    </bean> 

帮我出这一点。

回答

0

我会建议升级到版本2.3(如果可能),并使用org.restlet.ext.jetty扩展名作为客户端连接器(HTTP客户端不推荐使用)。

简单地把它放在classpath或你的应用程序中。

希望它可以帮助你, 蒂埃里

+0

感谢您的回答亨利,但请再次检查更新的问题,在我”已经添加了HTTPS服务器的配置。 –

0

我有同样的问题与2.3,因为在2.2完成重构,其中类被抛去的。

终于拿到HTTPS 2.3

摇篮工作的依赖关系:

dependencies { 
    compile 'org.restlet.jse:org.restlet:2.3.7' 
    compile 'org.restlet.jse:org.restlet.ext.jsslutils:2.3.7' 
} 

HTTPS服务器初始化

Component = new Component(); 
// create server 
Server server = component.getServers().add(Protocol.HTTPS, 443); 
// get server parameters 
Series<Parameter> parameters = server.getContext().getParameters(); 
// set parameters 
parameters.add("keystorePath", "cert\\testServer.jks"); 
parameters.add("keystorePassword", "password"); 
parameters.add("keyPassword", "password"); 
parameters.add("keystoreType", "JKS");