`
zouzhirong
  • 浏览: 6035 次
  • 性别: Icon_minigender_1
  • 来自: 大连
文章分类
社区版块
存档分类
最新评论

Hazelcast集成Spring,解析hazelcast定义出错

    博客分类:
  • java
阅读更多

在Spring中定义Hazelcast配置:

 

<beans xmlns="http://www.springframework.org/schema/beans"
 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:context="http://www.springframework.org/schema/context"
 xmlns:hz="http://www.hazelcast.com/schema/spring"
 xsi:schemaLocation="http://www.springframework.org/schema/beans
                http://www.springframework.org/schema/beans/spring-beans.xsd
                http://www.springframework.org/schema/context
                http://www.springframework.org/schema/context/spring-context.xsd
                http://www.hazelcast.com/schema/spring
                http://www.hazelcast.com/schema/spring/hazelcast-spring.xsd">

 <context:annotation-config />

 <hz:hazelcast id="instance">
  <hz:config>
   <hz:network port="5701" port-auto-increment="true">
    <hz:join>
     <hz:multicast enabled="true" 
      multicast-group="224.2.2.3" 
      multicast-port="54327" 
      multicast-time-to-live="32" 
      multicast-timeout-seconds="2" />
    </hz:join>
   </hz:network>
   
   <hz:group name="pushcoregroup" password="password" />
  
    
  </hz:config>
 </hz:hazelcast>

</beans>

 

 

启动时,程序报错:

Caused by: org.xml.sax.SAXParseException; lineNumber: 25; columnNumber: 57; cvc-complex-type.2.4.a: 发现了以元素 'hz:group' 开头的无效内容。应以 '{"http://www.hazelcast.com/schema/spring":partition-group, "http://www.hazelcast.com/schema/spring":executor-service, "http://www.hazelcast.com/schema/spring":queue, "http://www.hazelcast.com/schema/spring":map, "http://www.hazelcast.com/schema/spring":cache, "http://www.hazelcast.com/schema/spring":multimap, "http://www.hazelcast.com/schema/spring":list, "http://www.hazelcast.com/schema/spring":set, "http://www.hazelcast.com/schema/spring":topic, "http://www.hazelcast.com/schema/spring":jobtracker, "http://www.hazelcast.com/schema/spring":replicatedmap, "http://www.hazelcast.com/schema/spring":listeners, "http://www.hazelcast.com/schema/spring":serialization, "http://www.hazelcast.com/schema/spring":security, "http://www.hazelcast.com/schema/spring":member-attributes, "http://www.hazelcast.com/schema/spring":services}' 之一开头。
 at com.sun.org.apache.xerces.internal.util.ErrorHandlerWrapper.createSAXParseException(ErrorHandlerWrapper.java:198)
 at com.sun.org.apache.xerces.internal.util.ErrorHandlerWrapper.error(ErrorHandlerWrapper.java:134)
 at com.sun.org.apache.xerces.internal.impl.XMLErrorReporter.reportError(XMLErrorReporter.java:437)
 at com.sun.org.apache.xerces.internal.impl.XMLErrorReporter.reportError(XMLErrorReporter.java:368)
 at com.sun.org.apache.xerces.internal.impl.XMLErrorReporter.reportError(XMLErrorReporter.java:325)
 at com.sun.org.apache.xerces.internal.impl.xs.XMLSchemaValidator$XSIErrorReporter.reportError(XMLSchemaValidator.java:458)
 at com.sun.org.apache.xerces.internal.impl.xs.XMLSchemaValidator.reportSchemaError(XMLSchemaValidator.java:3237)
 at com.sun.org.apache.xerces.internal.impl.xs.XMLSchemaValidator.handleStartElement(XMLSchemaValidator.java:1796)
 at com.sun.org.apache.xerces.internal.impl.xs.XMLSchemaValidator.emptyElement(XMLSchemaValidator.java:766)
 at com.sun.org.apache.xerces.internal.impl.XMLNSDocumentScannerImpl.scanStartElement(XMLNSDocumentScannerImpl.java:356)
 at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl$FragmentContentDriver.next(XMLDocumentFragmentScannerImpl.java:2786)
 at com.sun.org.apache.xerces.internal.impl.XMLDocumentScannerImpl.next(XMLDocumentScannerImpl.java:606)
 at com.sun.org.apache.xerces.internal.impl.XMLNSDocumentScannerImpl.next(XMLNSDocumentScannerImpl.java:117)
 at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.scanDocument(XMLDocumentFragmentScannerImpl.java:510)
 at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:848)
 at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:777)
 at com.sun.org.apache.xerces.internal.parsers.XMLParser.parse(XMLParser.java:141)
 at com.sun.org.apache.xerces.internal.parsers.DOMParser.parse(DOMParser.java:243)
 at com.sun.org.apache.xerces.internal.jaxp.DocumentBuilderImpl.parse(DocumentBuilderImpl.java:347)
 at org.springframework.beans.factory.xml.DefaultDocumentLoader.loadDocument(DefaultDocumentLoader.java:76)
 at org.springframework.beans.factory.xml.XmlBeanDefinitionReader.doLoadDocument(XmlBeanDefinitionReader.java:429)
 at org.springframework.beans.factory.xml.XmlBeanDefinitionReader.doLoadBeanDefinitions(XmlBeanDefinitionReader.java:391)
 ... 14 more

 

 

 

通过排查后,发现http://hazelcast.com/schema/spring/hazelcast-spring-3.4.xsd中定义了元素出现的顺序,

 

<xs:element name="config">
<xs:complexType>
<xs:complexContent>
<xs:extension base="hazelcast-bean">
<xs:sequence>
<xs:element name="spring-aware" type="spring-aware" minOccurs="0" maxOccurs="1"/>
<xs:element name="instance-name" type="xs:string" minOccurs="0" maxOccurs="1"/>
<xs:element name="group" type="group" minOccurs="0" maxOccurs="1"/>
<xs:element name="license-key" type="xs:string" minOccurs="0" maxOccurs="1"/>
<xs:element name="management-center" type="management-center" minOccurs="0" maxOccurs="1"/>
<xs:element name="properties" type="properties" minOccurs="0" maxOccurs="1"/>
<xs:element name="wan-replication" type="wan-replication" minOccurs="0" maxOccurs="unbounded"/>
<xs:element name="network" type="network" minOccurs="0" maxOccurs="1"/>
<xs:element name="partition-group" type="partition-group" minOccurs="0" maxOccurs="1"/>
<xs:element name="executor-service" minOccurs="0" maxOccurs="unbounded">...</xs:element>
<xs:element name="queue" minOccurs="0" maxOccurs="unbounded">...</xs:element>
<xs:element name="map" minOccurs="0" maxOccurs="unbounded">...</xs:element>
<xs:element name="cache" minOccurs="0" maxOccurs="unbounded">...</xs:element>
<xs:element name="multimap" minOccurs="0" maxOccurs="unbounded">...</xs:element>
<xs:element name="list" minOccurs="0" maxOccurs="unbounded">...</xs:element>
<xs:element name="set" minOccurs="0" maxOccurs="unbounded">...</xs:element>
<xs:element name="topic" minOccurs="0" maxOccurs="unbounded">...</xs:element>
<xs:element name="jobtracker" minOccurs="0" maxOccurs="unbounded">...</xs:element>
<xs:element name="replicatedmap" minOccurs="0" maxOccurs="unbounded">...</xs:element>
<xs:element name="listeners" type="listeners" minOccurs="0" maxOccurs="1"/>
<xs:element name="serialization" type="serialization" minOccurs="0" maxOccurs="1"/>
<xs:element name="security" type="security" minOccurs="0" maxOccurs="1"/>
<xs:element name="member-attributes" minOccurs="0" maxOccurs="1">...</xs:element>
<xs:element name="services" type="services" minOccurs="0" maxOccurs="1"/>
</xs:sequence>
</xs:extension>
</xs:complexContent>
</xs:complexType>
</xs:element>
<xs:element name="data-serializable-factories">

 

 
 

其中xs:sequence指示器规定了各个元素出现的顺序,要求group出现在network的前面,于是,把配置改成这样:

<beans xmlns="http://www.springframework.org/schema/beans"
 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:context="http://www.springframework.org/schema/context"
 xmlns:hz="http://www.hazelcast.com/schema/spring"
 xsi:schemaLocation="http://www.springframework.org/schema/beans
                http://www.springframework.org/schema/beans/spring-beans.xsd
                http://www.springframework.org/schema/context
                http://www.springframework.org/schema/context/spring-context.xsd
                http://www.hazelcast.com/schema/spring
                http://www.hazelcast.com/schema/spring/hazelcast-spring.xsd">

 <context:annotation-config />

 <hz:hazelcast id="instance">
  <hz:config>
   <hz:group name="pushcoregroup" password="password" />
  
   <hz:network port="5701" port-auto-increment="true">
    <hz:join>
     <hz:multicast enabled="true" 
      multicast-group="224.2.2.3" 
      multicast-port="54327" 
      multicast-time-to-live="32" 
      multicast-timeout-seconds="2" />
    </hz:join>
   </hz:network>
   
   
  
    
  </hz:config>
 </hz:hazelcast>

</beans>

 

 

 

 

 

问题就解决了!!

分享到:
评论

相关推荐

    Spring Boot和Hazelcast使用详解

    Spring Boot和Hazelcast使用详解是指如何将Hazelcast集成到Spring Boot项目中,以提高应用程序的性能。Hazelcast是一个内存分布式计算平台,用于管理数据并并行执行应用程序。它具有高度可扩展的特性,包括提供java....

    hazelcast-spring-3.2.1.zip

    3. **集成测试**: 可能包含用于测试 Hazelcast-Spring 集成的示例代码和测试套件,帮助开发者了解如何在 Spring 应用中正确地集成和测试 Hazelcast。 4. **依赖管理**: 需要与特定版本的 Hazelcast 和 Spring 框架...

    spring-session-hazelcast:在Spring Session中使用Hazelcast的示例

    在Spring Session 1.0.2中使用Hazelcast 3.5.1的示例 从Spring Session 1.1开始,此示例现在是Spring Session项目本身的一部分。 参见 。 安全榛树广播 以Hazelcast为后端而不是Redis的示例。 支持在到期时发送...

    Hazelcast与Spring Data集成项目,含配置、示例.zip

    1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,...

    hazelcast-example:Hazelcast,Spring Boot,域驱动设计

    在Spring Boot中集成Hazelcast,可以利用Spring的自动配置功能,通过简单的配置即可实现Hazelcast的初始化和使用。在本示例中,你将看到如何在Spring Boot应用的配置文件中设置Hazelcast的相关属性,以及如何通过...

    Hazelcast集群部署手册.docx

    Hazelcast集群部署手册 Hazelcast是Java中的一种分布式内存数据网格(In-Memory Data Grid),提供了高可用性、可扩展性和高性能的数据存储解决方案。下面是Hazelcast集群部署手册的相关知识点: 一、下载和安装...

    hazelcast-4.1.1.zip

    9. 集成其他技术:Hazelcast可以轻松集成到Spring、Quarkus、WildFly等应用框架和容器中,简化开发和部署流程。 10. Hazelcast Jet:这是Hazelcast的流处理引擎,允许进行实时数据处理和复杂事件处理。Hazelcast ...

    springmvc+mybatis+Hazelcast试验

    Hazelcast可以无缝集成到Spring应用中,提高系统的伸缩性和高可用性。 【整合SpringMVC、MyBatis与Hazelcast】 将这三者结合使用,可以构建出高性能、可扩展的企业级应用。SpringMVC负责处理HTTP请求,提供用户交互...

    hazelcast-3.7.2-API文档-中文版.zip

    赠送jar包:hazelcast-3.7.2.jar; 赠送原API文档:hazelcast-3.7.2-javadoc.jar; 赠送源代码:hazelcast-3.7.2-sources.jar; 赠送Maven依赖信息文件:hazelcast-3.7.2.pom; 包含翻译后的API文档:hazelcast-...

    hazelcast-3.12.2.zip

    10. **集成能力**:Hazelcast可以轻松地与Spring、Hibernate、JMS等框架集成,简化开发工作。 11. **API与客户端**:Hazelcast提供了丰富的Java API,同时也支持其他语言的客户端,如C++、Python、.NET等,方便不同...

    hazelcast API

    10. **易于集成**:Hazelcast API 可以无缝集成到Spring框架中,简化了开发过程。同时,它还提供了多种语言的客户端,包括Java、C++、Python、.NET等,满足跨平台需求。 总的来说,Hazelcast API 提供了一个全面的...

    hazelcast 文档

    Hazelcast提供了事务接口,并集成了J2EE,支持与Glassfish v3和JBoss Web应用服务器的集成,提供了资源适配器配置和示例Web应用配置。 ### 分布式执行服务 Hazelcast的分布式执行服务允许在集群中分布执行代码,...

    hazelcast-demo:带有hazelcast缓存演示的Spring Boot

    hazelcast 不完全指南 实现了同实例缓存共吸共享,没有测试不同实例(IP) 缓存共享,还需要测试 已经找到了可能的配置项 configuration @Configuration @EnableCaching public class HazelcastConfiguration { @Bean ...

    hazelcast-3.5.5.tar.gz Mac OS

    6. **集成应用**:Hazelcast可以作为Java应用程序的一部分,通过添加Hazelcast的JAR库依赖并编写相应的代码来使用其功能。 7. **安全设置**:在生产环境中,为保障安全性,通常需要配置SSL通信、成员身份验证和权限...

    Hazelcast 配置说明文件

    Hazelcast 配置说明文件 Hazelcast 配置可以通过声明式配置(XML)或编程式配置(API)或两者的混合方式进行。下面是对 Hazelcast 配置的详细说明: 一、声明式配置 声明式配置是指通过 XML 文件来配置 Hazelcast...

    openfire使用hazelCast集群

    OpenFire 使用 HazelCast 集群 OpenFire 是一款流行的即时通信服务器软件,而 HazelCast 是一个高性能的分布式内存数据网格。OpenFire 使用 HazelCast 集群可以提高系统的可扩展性和高可用性。本文将从集群概念、两...

    Hazelcast 文档 version 3 2

    《Hazelcast 文档 version 3 2》深入解析了Hazelcast这一开源集群与高度可扩展的数据分发平台在Java虚拟机(JVM)环境中的应用与优势。Hazelcast旨在解决现代服务器端应用程序面临的关键挑战,尤其是在云计算普及的...

    hazelcast-原版文档

    Hazelcast 是一款面向 Java 平台的开源分布式计算平台,提供高性能的分布式数据结构和集群服务。其设计宗旨是为开发人员提供简单而直接的方式构建可扩展的应用程序,通过分布式缓存、数据分发、消息队列等功能,降低...

    hazelcast-3.7.2-API文档-中英对照版.zip

    赠送jar包:hazelcast-3.7.2.jar; 赠送原API文档:hazelcast-3.7.2-javadoc.jar; 赠送源代码:hazelcast-3.7.2-sources.jar; 赠送Maven依赖信息文件:hazelcast-3.7.2.pom; 包含翻译后的API文档:hazelcast-...

    hazelcast-3.8.9.zip

    通过解压`hazelcast-3.8.9.zip`,用户可以获取到Hazelcast的JAR文件和其他必要的配置文件,从而在自己的应用程序中集成和使用Hazelcast。在部署和配置过程中,用户需要关注网络设置、内存配置、数据分区策略以及安全...

Global site tag (gtag.js) - Google Analytics