当前位置: 首页 > 知识库问答 >
问题:

Apache CXF web服务。服务器初始化缓慢

仲孙钊
2023-03-14

我正在用Apache CXF 2.7.8开发web服务。我使用wsdl2java来生成SEI和实现。有数百个web服务endpoint。

我使用嵌入式码头。

当服务器启动时,初始化每个endpoint需要几个小时。

我曾经使用 Endpoint.publish(地址、实现器)方法发布endpoint,但我发现通过这种方式,可以为每个服务创建一个 JAXBContext 实例。我修复了为每个服务使用单个JAXB上下文实例的问题,这很有帮助。

但是,启动服务器仍然非常慢。

在日志中,此片段重复数百次。

cl:abstract observable m:setMessageObserver[main]20:50:48 DEBUG-Accept:/

cl: Headers m: logpro colHeaders[main] 20:50:48调试-管道“{http://cxf.apache.org}TransportURIResolver.http管道”的无信任决策。假设一个有效的信任决策。

cl: HTTPConduit$WrappedOutputStream m: makeTrustDecishtml" target="_blank">ion [main] 20:50:48 DEBUG - Conduit '{http://cxf.apache.org}TransportURIResolver.http-conduit' 已被 (重新)配置为普通 http.

cl: HTTPConduit m: setTlsClientParameters[main] 20:50:48 DEBUG-没有为Conduit配置信任决定器'{http://cxf.apache.org}TransportURIResolver.http-管道'

cl:HttpConduct m:logConfig[main]20:50:48调试-未为导管配置认证供应商{http://cxf.apache.org}TransportURIResolver.http管道'

cl:httpconduct m:logConfig[main]20:50:48调试-管道'{http://cxf.apache.org}TransportURIResolver。已为普通http配置了http管道。

cl: HTTPConduit m: logConfig [main] 20:50:48 DEBUG - 注册传入的观察者: org.apache.cxf.transport.transporturiResolver$1@1405d451

有人能解释一下这意味着什么吗?如果有什么方法可以在全球范围内配置这些设置一次?

谢谢你。

共有1个答案

昌栋
2023-03-14

这意味着您正在使用 HTTP(或更糟的是:https)网址来表示某些内容,可能是 WSDL 位置。因此,对于每个 WSDL/模式/等...它必须从远程位置下载这些。为了更快地启动,请将 wsdl 的本地并直接引用它们。

 类似资料:
  • Serenity 使用服务定位器模式(service locator pattern)抽象其依赖,以使其可以与你所选的库(libraries)和服务提供者(service providers)一起工作。 例如,Serenity 并不关心你是如何存储用户,但是它可以通过抽象(IAuthorizationService、IUserRetrieveService 等)查询当前用户。 与你在应用程序中使用

  • [命名空间: Serenity, 程序集: Serenity.Core] Serenity 包含稍加修改的 Munq IoC 容器(http://munq.codeplex.com/)。 MunqContainer 类实现 IDependencyResolver 和 IDependencyRegistrar 接口(所有容器都应该实现这两个接口)。 一旦你像下面这样设置 MunqContainer

  • 如何在GWT应用程序的服务器端进行一次初始化? 我可能想的很像,您可以重写,但旧习惯很快就会消失;) 我想做的是: > < li> 加载一组属性 建立与数据库的连接

  • [命名空间: Serenity.Abstractions, 程序集: Serenity.Core] 依赖解析器(Dependency resolvers)应该实现 IDependencyRegistrar 接口来注册依赖: public interface IDependencyRegistrar { object RegisterInstance<TType>(TType instanc

  • [命名空间: Serenity.Abstractions, 程序集: Serenity.Core] 此接口通常定义依赖解析器(dependency resolvers)的契约,以使 IoC 容器处理服务(services)与提供者(providers)之间的映射。 public interface IDependencyResolver { TService Resolve<TServic

  • 我需要在我的GAE应用程序中初始化一个驱动服务。我使用OAuth 2.0和3条腿。我使用普通的谷歌账户(没有服务账户)。我在努力: 我得到这个错误: OAuth 2.0流授权正在工作,但访问驱动器时出现上述错误。 我不认为我的GoogleCredentials是错误的,因为我使用相同的方法来获得授权,以便使用Google Picker。 我从用户那里获得GoogleCredential的方式是: