0

Websphere 8에서 매우 간단한 Spring Batch Admin 응용 프로그램을 시작하려고 시도하는 중에 "mbeanExporter Invocation failed. UnableToRegisterMBeanException ... InstanceAlreadyExistsException"오류가 발생합니다. https://examples.javacodegeeks.com/enterprise-java/spring/spring-batch-admin-tutorial/에서 다운로드 할 수 있습니다.mbeanExporter init 메소드의 호출이 실패했습니다. UnableToRegisterMBeanException ...

매우 간단한 간단한 일괄 처리 관리자 프로젝트입니다. 이클립스에서 프로젝트를 성공적으로 디버깅 할 수 있고 전쟁을 구축하고 Websphere Liberty Profile 8.5에 배포 할 수 있습니다. 성공함으로써 Spring Batch 관리 콘솔을 열고 작업을 올바르게 시작할 수 있음을 의미합니다.

아래의 오류는 그러한 전쟁을 Mainframe Websphere 8.5 ND로 옮길 때만 나타납니다. 나는 그것이 메인 프레임/유닉스와 직접적인 관련이 있다고 생각하지 않는다. 사실, 필자는 Pom.xml과 Websphere에서 설명하는 라이브러리 사이의 충돌이 아닌지 궁금합니다. 어떤 아이디어를 확인해야할지 매우 감사하게 생각할 것입니다. 최근에 나는 Hibernate/JPA를 사용할 때 특정 이슈를 가지고 있으며, 단순히 버전을 다운 그레이드함으로써 버전을 수정했다. 그것은 조금 비슷한 시나리오입니다 : Websphere Liberty Profile에서 작동하지만 pom.xml에서 최대 절전 모드 버전을 다운 그레이드 할 때까지 Websphere 8.5 ND에서 작동하지 않았습니다. 글쎄, 이번에는 최대 절전 모드가 전혀 없지만 언젠가는 고정 된 것을 여기에 입력했는데 누군가가 나에게 무엇을 확인해야 할지를 알려줄 수 있습니다. 도서관 갈등이라는 생각이 들지만 확인하거나 조사해야 할 대상을 모른다.

스프링 부트를 사용하여 비슷한 오류가 발생하는 사람은 거의 없습니다.하지만 제 경우는 그렇지 않습니다. 나를 후 그럼에도 불구하고, 나는 그런 프로젝트의 모든 말뭉치 주석이없는 나는 적어도 명시 적으로 EnableIntegrationMBeanExport를 사용하고 있지 않다

@EnableIntegrationMBeanExport(registration = RegistrationPolicy.REPLACE_EXISTING) 

을 추가로 특별 Getting exception while refreshing Spring ApplicationContext in Spring Boot application 사람이 정확히 같은 오류가 발생했습니다. 어쩌면 그 장면 뒤에 사용되었지만 나는 그 전문가가 아니기 때문에 다른 사람이 나에게 가능성을 줄 수 있다면 그것이 훌륭한 북쪽이 될지 확인할 것입니다. 또한 Spring MVC를 사용하지 않습니다.

오류 응용 프로그램

Trace: 2016/09/09 22:49:17.049 02 t=9BDE88 c=UNK key=P8 tag= (13007004) 

    SourceId: com.ibm.ws.webcontainer.webapp.WebApp.logServletError 

    ExtendedMessage: BBOO0220E: SRVE0293E: ÝServlet Error¨-ÝBatch Servlet¨: org.springframework.beans.factory.BeanCreationException: E 

rror creating bean with name 'mbeanExporter': Invocation of init method failed; nested exception is org.springframework.jmx.export.U 

nableToRegisterMBeanException: Unable to register MBean Ýo[email protected]4ed60bcf¨ 

with key 'integrationMBeanExporter'; nested exception is javax.management.InstanceAlreadyExistsException: spring.application:cell=dt 

l85cel,name=integrationMBeanExporter,type=IntegrationMBeanExporter,node=wlemyAppa,process=WLEmyApp 

at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.j 

ava:1553) 

at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.jav 

a:539) 

at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java: 

475) 

at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:304) 

at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:228) 

at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:300) 

at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:195) 

at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:70 

3) 

at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:7 

60) 

... 

at com.sun.jmx.interceptor.DefaultMBeanServerInterceptor.invoke(DefaultMBeanSe 

at com.sun.jmx.mbeanserver.JmxMBeanServer.invoke(JmxMBeanServer.java:814) 

at com.ibm.ws390.management.connector.corba.CorbaConnectorImpl.invoke(CorbaCon 

at com.ibm.ws390.management.connector.corba._CorbaConnectorImplBase._invoke(_C 

at com.ibm.ws390.orb.CommonBridge.invoke(CommonBridge.java:1898) 

at com.ibm.ws390.orb.CommonBridge.getAndProcessWork(CommonBridge.java:725) 

at com.ibm.ws390.orb.CommonBridge.runApplicationThread(CommonBridge.java:614) 

at com.ibm.ws390.management.connector.corba.CorbaConnectorImpl.invoke(CorbaCon 

at com.ibm.ws390.management.connector.corba._CorbaConnectorImplBase._invoke(_C 

at com.ibm.ws390.orb.CommonBridge.invoke(CommonBridge.java:1898) 

at com.ibm.ws390.orb.CommonBridge.getAndProcessWork(CommonBridge.java:725) 

at com.ibm.ws390.orb.CommonBridge.runApplicationThread(CommonBridge.java:614) 

at com.ibm.ws.util.ThreadPool$ZOSWorker.run(ThreadPool.java:2116) 

Caused by: org.springframework.jmx.export.UnableToRegisterMBeanException: Unable to register MBean Ýorg.springframework.integration. 

monitor.IntegrationM[email protected]¨ with key 'integrationMBeanExporter';nested exception is javax.management.InstanceAlready 

ExistsException: spring.application:cell=mycel,name=integrationMBeanExporter,type=IntegrationMBeanExporter,node=wlemyAppa,process= 

WLEmyApp 

의 pom.xml

   <spring.version>4.0.5.RELEASE</spring.version> 

       <spring.batch.version>3.0.4.RELEASE</spring.batch.version> 

       <spring.jdbc.version>4.0.5.RELEASE</spring.jdbc.version> 

       <hsql.version>1.8.0.7</hsql.version> 

       <commons.version>1.4</commons.version> 

       <spring.oxm.version>4.0.5.RELEASE</spring.oxm.version> 

       <spring.batch.admin>1.3.1.RELEASE</spring.batch.admin> 

     </properties> 

     <dependencies> 

       <dependency> 

        <groupId>org.springframework.batch</groupId> 

        <artifactId>spring-batch-core</artifactId> 

        <version>${spring.batch.version}</version> 

       </dependency> 



       <dependency> 

        <groupId>org.springframework</groupId> 

        <artifactId>spring-context-support</artifactId> 

        <version>${spring.version}</version> 

       </dependency> 

       <dependency> 

        <groupId>hsqldb</groupId> 

        <artifactId>hsqldb</artifactId> 

        <version>${hsql.version}</version> 

       </dependency> 

       <dependency> 

        <groupId>org.springframework</groupId> 

        <artifactId>spring-jdbc</artifactId> 

        <version>${spring.jdbc.version}</version> 

       </dependency> 

       <dependency> 

        <groupId>commons-dbcp</groupId> 

        <artifactId>commons-dbcp</artifactId> 

        <version>${commons.version}</version> 

       </dependency> 

       <dependency> 

        <groupId>org.springframework</groupId> 

        <artifactId>spring-oxm</artifactId> 

        <version>${spring.oxm.version}</version> 

       </dependency> 

       <dependency> 

        <groupId>junit</groupId> 

        <artifactId>junit</artifactId> 

        <version>3.8.1</version> 

        <scope>test</scope> 

       </dependency> 

       <dependency> 

        <groupId>org.springframework.batch</groupId> 

        <artifactId>spring-batch-admin-manager</artifactId> 

        <version>${spring.batch.admin}</version> 

        <exclusions> 

          <exclusion> 

            <groupId>org.springframework.batch</groupId> 

            <artifactId>spring-context-support</artifactId> 

          </exclusion> 

        </exclusions> 

       </dependency> 

       <dependency> 

        <groupId>org.springframework.batch</groupId> 

        <artifactId>spring-batch-admin-resources</artifactId> 

        <version>${spring.batch.admin}</version> 

        <exclusions> 

          <exclusion> 

            <groupId>org.springframework.batch</groupId> 

            <artifactId>spring-context-support</artifactId> 

          </exclusion> 

        </exclusions> 

       </dependency> 



     </dependencies> 

     <build> 

       <finalName>SpringBatchAdmin</finalName> 

       <plugins> 

        <plugin> 

          <groupId>org.apache.maven.plugins</groupId> 

          <artifactId>maven-compiler-plugin</artifactId> 

          <version>2.2</version> 

          <configuration> 

            <source>1.7</source> 

            <target>1.7</target> 

          </configuration> 

        </plugin> 

       </plugins> 

     </build> 

</project> 

작업-config.xml에

<?xml version="1.0" encoding="UTF-8"?> 

<beans xmlns="http://www.springframework.org/schema/beans" 

     xmlns:batch="http://www.springframework.org/schema/batch" xmlns:util="http://www.springframework.org/schema/util" 

     xmlns:task="http://www.springframework.org/schema/task" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 

     xsi:schemaLocation="http://www.springframework.org/schema/batch 

     http://www.springframework.org/schema/batch/spring-batch-3.0.xsd 

     http://www.springframework.org/schema/beans 

     http://www.springframework.org/schema/beans/spring-beans-4.0.xsd 

     http://www.springframework.org/schema/util 

     http://www.springframework.org/schema/util/spring-util-4.0.xsd"> 





     <bean 

       class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer"> 

       <property name="locations"> 

        <list> 

          <value>classpath:batch-default.properties 

          </value> 

        </list> 

       </property> 

       <property name="searchSystemEnvironment" value="true" /> 

       <property name="systemPropertiesModeName" value="SYSTEM_PROPERTIES_MODE_OVERRIDE" /> 

       <property name="ignoreUnresolvablePlaceholders" value="true" /> 

     </bean> 





     <job id="myjob" xmlns="http://www.springframework.org/schema/batch" 

       restartable="true"> 

       <step id="myStep" allow-start-if-complete="true"> 

        <tasklet> 

          <chunk reader="cvsFileItemReader" writer="itemWriter" 

            commit-interval="1000" /> 

        </tasklet> 

       </step> 

     </job> 



     <bean id="cvsFileItemReader" class="org.springframework.batch.item.file.FlatFileItemReader"> 

       <!-- property name="resource" value="${INPUT_FILE_LOCATION}"></property--> 

       <property name="resource" value="file:/C:/temp/sampleData.csv"></property> 

       <property name="linesToSkip" value="1"></property> 

       <property name="lineMapper"> 

        <bean class="org.springframework.batch.item.file.mapping.DefaultLineMapper"> 

          <property name="lineTokenizer"> 

            <bean 

             class="org.springframework.batch.item.file.transform.DelimitedLineTokenizer"> 

             <!-- <property name="names" value="${INCOMING_COLUMN_MAPPING}"></property> --> 

             <property name="names" value="firstName,lastName,city,id"></property> 



            </bean> 

          </property> 

          <property name="fieldSetMapper"> 

            <bean 

             class="org.springframework.batch.item.file.mapping.BeanWrapperFieldSetMapper"> 

             <property name="prototypeBeanName" value="userModel"></property> 

            </bean> 

          </property> 

        </bean> 

       </property> 



     </bean> 





     <bean id="itemWriter" 

       class="org.springframework.batch.item.database.JdbcBatchItemWriter"> 

       <property name="dataSource" ref="dataSource"></property> 

       <property name="sql" value="${INSERT_QUERY}"> 

       </property> 

       <property name="itemSqlParameterSourceProvider"> 

        <bean 

          class="org.springframework.batch.item.database.BeanPropertyItemSqlParameterSourceProvider" /> 

       </property> 

     </bean> 



     <bean id="userModel" class="com.javacodegeeks.example.util.UserModel" 

       scope="prototype" /> 





</beans> 

텍스-config.xml에

,691,363을 startuping 때 (210)
<beans xmlns="http://www.springframework.org/schema/beans" 

     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 

     xmlns:jdbc="http://www.springframework.org/schema/jdbc"  

     xsi:schemaLocation=" 

       http://www.springframework.org/schema/beans 

       http://www.springframework.org/schema/beans/spring-beans-3.2.xsd 

       http://www.springframework.org/schema/jdbc 

      http://www.springframework.org/schema/jdbc/spring-jdbc.xsd"> 



     <!-- using in-memory store for batch meta-data --> 

     <bean id="jobRepository" 

       class="org.springframework.batch.core.repository.support.JobRepositoryFactoryBean"> 

       <property name="dataSource" ref="dataSource" /> 

       <property name="transactionManager" ref="transactionManager" /> 

       <property name="databaseType" value="hsql" /> 

     </bean> 



     <bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager"> 

       <property name="dataSource" ref="dataSource"></property>  

     </bean> 



     <bean id="jobLauncher" 

       class="org.springframework.batch.core.launch.support.SimpleJobLauncher"> 

       <property name="jobRepository" ref="jobRepository" /> 

     </bean> 



     <bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource" 

       lazy-init="true" destroy-method="close"> 

       <property name="driverClassName" value="org.hsqldb.jdbcDriver" /> 

       <property name="url" 

        value="jdbc:hsqldb:file:src/main/resources/hsqldb/batchcore.db;shutdown=true;" />  

       <property name="username" value="sa" /> 

       <property name="password" value="" /> 

     </bean> 


</beans> 

Project Tree

은 편집 **** : 나는 Deploying two Spring batch applications in same cluster in a single Weblogic Domain?을 읽고있다

웹 로직에 두 개의 스프링 배치 관리자 실행할 수 있도록하는 방법을 설명한다. 그 사람이 똑같은 문제에 직면하고 있음을 알 수 있습니다. 그런 다음 다른 Spring Batch Admin을 만들고 내 로컬 Websphere Liberty 프로파일에 배포 한 다음 메인 프레임에서 픽업 한 것과 동일한 오류가 발생했습니다.

처음에는 문제와 해결책을 찾았다 고 생각하기 때문에 행복했습니다.

로컬 웹 스피어에서/META-INF/spring/batch/override/jmx-context를 추가하여 수정했습니다.xml과 함께 :

메인 프레임에서 실행되는 Websphere 8.5 ND에서 동일한 접근법을 시도 할 때까지 좋은 소식이었습니다. 정확히 같은 문제가 거기에 남아 있습니다. 제발, 적어도 제가 시도 할 수있는 다른 것을 찾고 있습니다.

+0

는 스택 추적에'InstanceAlreadyExistsException' 있습니다. Mainframe WAS에서 실행중인 다른 응용 프로그램이 Spring 프레임 워크에서 빌드되었는지 확인할 수 있습니까? – Haxiel

+0

예, 나는 하나 이상의 Spring 웹 애플리케이션이 있고 다른 Spring Batch Admin도 있다고 확신합니다. 글쎄, 어떻게 고칠 수 있니? –

+1

갱신 사항에 따르면 이제 문제점은 z/OS 용 WAS에만 적용됩니다. IBM docs [here] (http://www.ibm.com/support/knowledgecenter/en/SS7K4U_8.5.5/com.ibm.websphere.nd.multiplatform.doc/ae/cspr_data_access_tran2.html)를 살펴보십시오. 도움이되는지 확인하십시오. :-) – Haxiel

답변

0

같은 문제가있었습니다.

나는 스프링 통합이 사용 된 동일한 컴퓨터에서 가상 호스팅을 사용합니다. 테스트 시스템을 배포하고 나면 모든 것이 OK였습니다. 잠시 후, 나는 찌르다 시스템을 배치했고 모두 잘못되었다.

@EnableIntegrationMBeanExport (defaultdomain이 = "$ {managed.domain}")

과 application.properties에

내가 managed.domain 이름을 정의 파일 :

나는 다음과 같은 Application.class에 지정했습니다.

솔루션 여기 발견했습니다

Tutorial

관련 문제