• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    迪恩网络公众号

Java ServiceClassHolder类代码示例

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

本文整理汇总了Java中com.alibaba.dubbo.rpc.ServiceClassHolder的典型用法代码示例。如果您正苦于以下问题:Java ServiceClassHolder类的具体用法?Java ServiceClassHolder怎么用?Java ServiceClassHolder使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。



ServiceClassHolder类属于com.alibaba.dubbo.rpc包,在下文中一共展示了ServiceClassHolder类的6个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的Java代码示例。

示例1: exportLocal

import com.alibaba.dubbo.rpc.ServiceClassHolder; //导入依赖的package包/类
@SuppressWarnings({ "unchecked", "rawtypes" })
private void exportLocal(URL url) {
    if (!Constants.LOCAL_PROTOCOL.equalsIgnoreCase(url.getProtocol())) {
        URL local = URL.valueOf(url.toFullString())
                .setProtocol(Constants.LOCAL_PROTOCOL)
                .setHost(NetUtils.LOCALHOST)
                .setPort(0);

        // modified by lishen
        ServiceClassHolder.getInstance().pushServiceClass(getServiceClass(ref));

        Exporter<?> exporter = protocol.export(
                proxyFactory.getInvoker(ref, (Class) interfaceClass, local));
        exporters.add(exporter);
        logger.info("Export dubbo service " + interfaceClass.getName() +" to local registry");
    }
}
 
开发者ID:zhuxiaolei,项目名称:dubbo2,代码行数:18,代码来源:ServiceConfig.java


示例2: testRestProtocol

import com.alibaba.dubbo.rpc.ServiceClassHolder; //导入依赖的package包/类
@Test
public void testRestProtocol() throws InterruptedException {
    RestService server = new RestServiceImpl();
    ProxyFactory proxyFactory = ExtensionLoader.getExtensionLoader(ProxyFactory.class).getAdaptiveExtension();
    Protocol protocol = ExtensionLoader.getExtensionLoader(Protocol.class).getAdaptiveExtension();
    URL url = URL.valueOf("resteasy://127.0.0.1:5342/" + RestService.class.getName() + "?version=1.0.0&logger=slf4j");
    ServiceClassHolder.getInstance().pushServiceClass(RestService.class);
    Exporter<RestService> exporter = protocol.export(proxyFactory.getInvoker(server, RestService.class, url));
    Invoker<RestService> invoker = protocol.refer(RestService.class, url);
    RestService client = proxyFactory.getProxy(invoker);
    RequestDto requestDto = new RequestDto();
    requestDto.setAge(88);
    requestDto.setName("doctor who");
    ModelResult<String> modelResult = client.test(requestDto);

    String expected = "test " + ToStringBuilder.reflectionToString(requestDto, ToStringStyle.SHORT_PREFIX_STYLE);
    System.out.println(expected);
    Assert.assertEquals(expected, modelResult.getData());
    invoker.destroy();

    // TimeUnit.MINUTES.sleep(1);
    exporter.unexport();
}
 
开发者ID:sdcuike,项目名称:dubbo-rpc-rest,代码行数:24,代码来源:RestProtocolTest.java


示例3: doExport

import com.alibaba.dubbo.rpc.ServiceClassHolder; //导入依赖的package包/类
protected <T> Runnable doExport(T impl, Class<T> type, URL url) throws RpcException {
    String addr = url.getIp() + ":" + url.getPort();
    Class implClass = ServiceClassHolder.getInstance().popServiceClass();
    RestServer server = servers.get(addr);
    if (server == null) {
        server = serverFactory.createServer(url.getParameter(Constants.SERVER_KEY, "jetty"));
        server.start(url);
        servers.put(addr, server);
    }

    String contextPath = getContextPath(url);
    if ("servlet".equalsIgnoreCase(url.getParameter(Constants.SERVER_KEY, "jetty"))) {
        ServletContext servletContext = ServletManager.getInstance().getServletContext(ServletManager.EXTERNAL_SERVER_PORT);
        if (servletContext == null) {
            throw new RpcException("No servlet context found. Since you are using server='servlet', " +
                    "make sure that you've configured " + BootstrapListener.class.getName() + " in web.xml");
        }
        String webappPath = servletContext.getContextPath();
        if (StringUtils.isNotEmpty(webappPath)) {
            webappPath = webappPath.substring(1);
            if (!contextPath.startsWith(webappPath)) {
                throw new RpcException("Since you are using server='servlet', " +
                        "make sure that the 'contextpath' property starts with the path of external webapp");
            }
            contextPath = contextPath.substring(webappPath.length());
            if (contextPath.startsWith("/")) {
                contextPath = contextPath.substring(1);
            }
        }
    }

    final Class resourceDef = GetRestful.getRootResourceClass(implClass) != null ? implClass : type;

    server.deploy(resourceDef, impl, contextPath);

    final RestServer s = server;
    return new Runnable() {
        public void run() {
            // TODO due to dubbo's current architecture,
            // it will be called from registry protocol in the shutdown process and won't appear in logs
            s.undeploy(resourceDef);
        }
    };
}
 
开发者ID:zhuxiaolei,项目名称:dubbo2,代码行数:45,代码来源:RestProtocol.java


示例4: exportLocal

import com.alibaba.dubbo.rpc.ServiceClassHolder; //导入依赖的package包/类
@SuppressWarnings({ "unchecked", "rawtypes" })
private void exportLocal(URL url) {
	if (!Constants.LOCAL_PROTOCOL.equalsIgnoreCase(url.getProtocol())) {
		URL local = URL.valueOf(url.toFullString()).setProtocol(Constants.LOCAL_PROTOCOL)
				.setHost(NetUtils.LOCALHOST).setPort(0);

		// modified by lishen
		ServiceClassHolder.getInstance().pushServiceClass(getServiceClass(ref));

		Exporter<?> exporter = protocol.export(proxyFactory.getInvoker(ref, (Class) interfaceClass, local));
		exporters.add(exporter);
		log.info("Export dubbo service " + interfaceClass.getName() + " to local registry");
	}
}
 
开发者ID:nince-wyj,项目名称:jahhan,代码行数:15,代码来源:ServiceConfig.java


示例5: doExport

import com.alibaba.dubbo.rpc.ServiceClassHolder; //导入依赖的package包/类
protected <T> Runnable doExport(T impl, Class<T> type, URL url) throws RpcException {
    String addr = url.getIp() + ":" + url.getPort();
    Class implClass = ServiceClassHolder.getInstance().popServiceClass();
    RestServer server = servers.get(addr);
    if (server == null) {
        server = serverFactory.createServer(url.getParameter(Constants.SERVER_KEY, "jetty"));
        server.start(url);
        servers.put(addr, server);
    }

    String contextPath = getContextPath(url);
    if ("servlet".equalsIgnoreCase(url.getParameter(Constants.SERVER_KEY, "jetty"))) {
        ServletContext servletContext = ServletManager.getInstance().getServletContext(ServletManager.EXTERNAL_SERVER_PORT);
        if (servletContext == null) {
            throw new RpcException("No servlet context found. Since you are using server='servlet', " +
                    "make sure that you've configured " + BootstrapListener.class.getName() + " in web.xml");
        }
        String webappPath = servletContext.getContextPath();
        if (StringUtils.isNotEmpty(webappPath)) {
            webappPath = webappPath.substring(1);
            if (!contextPath.startsWith(webappPath)) {
                throw new RpcException("Since you are using server='servlet', " +
                        "make sure that the 'contextpath' property starts with the path of external webapp");
            }
            contextPath = contextPath.substring(webappPath.length());
            if (contextPath.startsWith("/")) {
                contextPath = contextPath.substring(1);
            }
        }
    }

    final Class resourceDef = GetRestful.getRootResourceClass(implClass) != null ? implClass : type;

    // dubbo 服务多版本
    String version = url.getParameter(Constants.VERSION_KEY);
    if (StringUtils.isNotEmpty(version)) {
        contextPath = version + "/" + contextPath;
    }
    server.deploy(resourceDef, impl, contextPath);

    final RestServer s = server;
    return new Runnable() {
        public void run() {
            // TODO due to dubbo's current architecture,
            // it will be called from registry protocol in the shutdown process and won't appear in logs
            s.undeploy(resourceDef);
        }
    };
}
 
开发者ID:sdcuike,项目名称:dubbo-rpc-rest,代码行数:50,代码来源:RestProtocol.java


示例6: doExport

import com.alibaba.dubbo.rpc.ServiceClassHolder; //导入依赖的package包/类
protected <T> Runnable doExport(T impl, Class<T> type, URL url) throws JahhanException {
	String addr = url.getIp() + ":" + url.getPort();
	Class implClass = ServiceClassHolder.getInstance().popServiceClass();
	RestServer server = servers.get(addr);
	if (server == null) {
		serverFactory.setHttpBinder(httpBinder);
		server = serverFactory.createServer(url.getParameter(Constants.SERVER_KEY, "jetty"));
		server.start(url);
		servers.put(addr, server);
	}

	String contextPath = getContextPath(url);
	if ("servlet".equalsIgnoreCase(url.getParameter(Constants.SERVER_KEY, "jetty"))) {
		ServletContext servletContext = BaseContext.CTX.getServletContext(url.getPort());
		if (servletContext == null) {
			throw new JahhanException("No servlet context found. Since you are using server='servlet', "
					+ "make sure that you've configured in web.xml");
		}
		String webappPath = servletContext.getContextPath();
		if (StringUtils.isNotEmpty(webappPath)) {
			webappPath = webappPath.substring(1);
			if (!contextPath.startsWith(webappPath)) {
				throw new JahhanException("Since you are using server='servlet', "
						+ "make sure that the 'contextpath' property starts with the path of external webapp");
			}
			contextPath = contextPath.substring(webappPath.length());
			if (contextPath.startsWith("/")) {
				contextPath = contextPath.substring(1);
			}
		}
	}

	final Class resourceDef = GetRestful.getRootResourceClass(implClass) != null ? implClass : type;

	server.deploy(resourceDef, impl, contextPath);

	final RestServer s = server;
	return new Runnable() {
		public void run() {
			// TODO due to dubbo's current architecture,
			// it will be called from registry protocol in the shutdown
			// process and won't appear in logs
			s.undeploy(resourceDef);
		}
	};
}
 
开发者ID:nince-wyj,项目名称:jahhan,代码行数:47,代码来源:RestProtocol.java



注:本文中的com.alibaba.dubbo.rpc.ServiceClassHolder类示例整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
Java LogicalSort类代码示例发布时间:2022-05-23
下一篇:
Java PortugueseLightStemFilter类代码示例发布时间:2022-05-23
热门推荐
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap