코드를 수정의 모습 이다.
그래서 대신 컨트롤러에서
@RequestMapping 호출
@Override
@Transactional(value = "oltpTransactionManager", propagation=Propagation.REQUIRED, rollbackFor={Exception.class, SolrServerException.class})
public boolean saveAllergens(List<AllergenAutoCmp> allergenList) {
boolean flag = false;
LOGGER.info("Inside saveAllergens in MCareServiceImpl");
try {
allergenAutoCmpRepository.deleteAllergens();
allergenAutoCmpRepository.saveAllergens(allergenList);
solrJ.indexAllergenBulkSlor();
flag = true;
} catch (SolrServerException e) {
LOGGER.error("Error occured while solr indexing Allergens", e);
} catch (IOException e) {
LOGGER.error("Error occured while solr indexing Allergens", e);
}
LOGGER.info("returning from saveAllergens in MCareServiceImpl");
return flag;
}
사용 하나 아래 (제거 시도를 바로 잡기)
@Override
@Transactional(value = "oltpTransactionManager", propagation=Propagation.REQUIRED, rollbackFor={Exception.class, SolrServerException.class})
public boolean saveAllergens(List<AllergenAutoCmp> allergenList) {
boolean flag = false;
LOGGER.info("Inside saveAllergens in MCareServiceImpl");
allergenAutoCmpRepository.deleteAllergens();
allergenAutoCmpRepository.saveAllergens(allergenList);
solrJ.indexAllergenBulkSlor();
flag = true;
LOGGER.info("returning from saveAllergens in MCareServiceImpl");
return flag;
}
(방법 = RequestMethod.POST) @ResponseBody public boolean handleFileUpload ( @ModelAttribute ("uploadFile") MultipartFile uploadFile,,@ModelAttribute ("의 fileType") 문자열되는 파일 형식) 예외 {
LOGGER.info("inside handleFileUpload");
CommonsMultipartFile aFile = (CommonsMultipartFile) uploadFile;
boolean flag = false;
if (aFile != null && aFile.getSize() > 0) {
flag = macareService.isFileUploaded(fileType, aFile);
}
LOGGER.info("exiting handleFileUpload");
return flag;
}
및 saveAllergens 호출 서비스 방법을 던진다 (...) 방법
@Override
public boolean isFileUploaded(String fileType, CommonsMultipartFile aFile) {
boolean flag = false;
try {
if (MCareConstants.ALLERGEN_UPLOAD_FILETYPE.equals(fileType)) {
ArrayList<AllergenAutoCmp> bulkInsertList = (ArrayList<AllergenAutoCmp>) ExcelUtils
.getBulkInsert(fileType, aFile);
if (bulkInsertList.size() > 0) {
flag = saveAllergens(bulkInsertList);
}
}
if (MCareConstants.REACTION_UPLOAD_FILETYPE.equals(fileType)) {
ArrayList<ReactionAutoCmp> bulkInsertList = (ArrayList<ReactionAutoCmp>) ExcelUtils
.getBulkInsert(fileType, aFile);
if (bulkInsertList.size() > 0) {
flag = saveReactionAutoCmps(bulkInsertList);
}
}
if (MCareConstants.LABTESTS_UPLOAD_FILETYPE.equals(fileType)) {
ArrayList<LabTestAutoCmp> bulkInsertList = (ArrayList<LabTestAutoCmp>) ExcelUtils
.getBulkInsert(fileType, aFile);
if (bulkInsertList.size() > 0) {
flag = saveLabTestAutoCmps(bulkInsertList);
}
}
if (MCareConstants.STAFF_UPLOAD_FILETYPE.equals(fileType)) {
ArrayList<StaffSolrForm> bulkInsertList = (ArrayList<StaffSolrForm>) ExcelUtils
.getBulkInsert(fileType, aFile);
if (bulkInsertList.size() > 0) {
flag = updateStaffList(bulkInsertList);
}
}
if (MCareConstants.REFERRAL_DOCTOR_UPLOAD_FILETYPE.equals(fileType)) {
ArrayList<ReferralAutoLookup> bulkInsertList = (ArrayList<ReferralAutoLookup>) ExcelUtils
.getBulkInsert(fileType, aFile);
if (bulkInsertList.size() > 0) {
flag = saveAllReferralAutolookup(bulkInsertList);
}
}
} catch (HeaderNameNotFoundException e) {
LOGGER.error("Error occured while updating solr indexing");
} catch (MandatoryValueNotFoundException e) {
LOGGER.error("Error occured while updating solr indexing");
}catch (SolrServerException e) {
LOGGER.error("Error updating index : ", e);
}catch (IOException e) {
LOGGER.error("Error updating index : ", e);
}catch (Exception e) {
LOGGER.error("Error occured while saving and solr indexing ReactionAutoCmps", e);
}
return flag;
}
이며 로그
을 다음과 같다
2014-04-29 19:14:21 오류 MCareServiceImpl : 405 - 색인 업데이트 오류 : org.apache.solr.solient.SolrServerException : 서버가 연결을 거부했습니다 : http://samplename.com:8090/solr/icd102 at org.apache. solr.client.solrj.impl.HttpSolrServer.request (HttpSolrServer.java:432) at org.apache.solr.client.solrj.impl.HttpSolrServer.request (HttpSolrServer.java:221) at org.apache.solr. client.solrj.request.AbstractUpdateRequest.process (AbstractUpdateRequest.java:105) at org.apache.solr.client.solrj.SolrServer.deleteByQuery (SolrServer.java:293) at org.apache.solr.client.solrj. com.bluecapmobile.service.impl.MCareServiceImpl.saveAllergens (MCareServiceImpl.java:103) 에서 com.bluecapmobile.helper.SolrJ.indexAllergenBulkSlor (SolrJ.java:222) 에서 SolrServer.deleteByQuery (SolrServer.java:278)에서 com.bluecapmobile.service.impl.MCareServiceImpl.isFileUploaded (MCareServiceImpl.java:369) at sun.reflect.NativeMethodAccessorImpl.invoke0 (기본 메서드) 2014-04-29 19 : 14 : 24.469 [http-bio-8080-exec-4] DEBUG osojpa.JpaTransactionManager - 트랜잭션 커밋 시작 2014-04-29 19 : 14 : 24.469 [http-bio-8080-exec -4] DEBUG osojpa.JpaTransactionManager - EntityManager에서 JPA 트랜잭션 커밋 [[email protected]] 2014-04-29 19:14:24 DEBUG AbstractTransactionImpl : 175 - 커밋 2014-04-29 19:14:24 DEBUG AbstractFlushingEventListener : 149 - 플러시 타임 캐스케이드 처리 2014-04-29 19:14:24 DEBUG AbstractFlushingEventListener : 189 - 더티 검사 모음 2014-04-29 19:14:24 DEBUG AbstractFlushingEventListener : 123 - 플러시 됨 : 0 삽입, 0 업데이트, 3 개체에 0 삭제 2014-04-29 19:14:24 DEBUG AbstractFlushingEventListener : 130 - 플러시 됨 : 0 (다시) 생성, 0 업데이트, 0 재실행 0 컬렉션으로 이동 2014-04-29 19:14:24 DEBUG EntityPrinter : 114 - 리스팅 엔티티 : 2014-04-29 19:14:24 DEBUG EntityPrinter : 121 - com.bluecapmobile.domain.oltp.AllergenAutoCmp {alergen = 밀, allergenId = 472, 설명 = 설명, 유형 = 음식} 2014-04-29 19:14:24 디버그 EntityPrinter : 121 - com.bluecapmobile.domain.oltp.AllergenAutoCmp {alergen = 473, description = 설명 1, type = Food} 2014-04-29 19:14:24 DEBUG EntityPrinter : 121 - com.bluecapmobile.domain.oltp.AllergenAutoCmp {alergen = 테스트, allergenId = 474, description = 테스트, 유형 = test} 2014-04-29 19:14:24 DEBUG JdbcTransaction : 113 - 커밋 된 JDBC 연결 2014-04-29 19:14:24 디버그 JdbcTransaction : 126 - 자동 커밋 다시 사용 2014-04-29 19 : 14:24 DEBUG LogicalConnectionImpl : 212 - 적극적으로 JDBC 연결 해제 2014-04-29 19:14:24 DEBUG LogicalConnectionImpl : 246 - JDBC 연결 해제 2014-04-29 19:14:24 DEBUG LogicalConnectionImpl : 264 - JD 출시 BC 연결 2014-04-29 19 : 14 : 24.496 [http-bio-8080-exec-4] DEBUG osojpa.JpaTransactionManager - 거래 후 JPA EntityManager [[email protected]] 닫음 2014 -04-29 19 : 14 : 24.497 [HTTP 바이오-8080-간부-4] 디버그 osojEntityManagerFactoryUtils - JPA EntityManager를 닫기
이 내 transacton 관리자 설정이
@Bean (이름처럼 보이는 방법이다 = " mtdmEntityManger ") public LocalContainerEntityManagerFactoryBean configureMtdmEntityManagerFactory() { LocalContainerEntityManagerFactoryBean entityManagerFactoryBean = new LocalContainerEntityManagerFactor yBean(); entityManagerFactoryBean.setPackagesToScan ("com.sample.domain.mtdm"); entityManagerFactoryBean.setPersistenceProviderClass (HibernatePersistenceProvider.class);
스프링 빈 정의를 게시 할 수 있습니까? – JToddler