2012-09-27 2 views
0

몇 가지 이유로 스캐 폴드 페이스 플러그인을 개별적으로 다시 빌드하려고 시도하지만 해결할 수없는 정말 귀찮은 버그를 발견했습니다.자체 스카 폴드 플러그인 만들기 : 위젯 콘솔 내에서 실행될 때만 metawidget 리소스로드 예외가 발생합니다.

java.lang.NoSuchMethodException: class org.metawidget.inspector.impl.BaseObjectInspectorConfig.setPropertyStyle(ForgePropertyStyle). Did you mean setPropertyStyle(PropertyStyle)? 
    at org.metawidget.config.impl.BaseConfigReader$ConfigHandler.classGetMethod(BaseConfigReader.java:1633) 

일부 트릭을 시도한 후에는 메타 위젯 구성 코드를 검토하고 문제를 해결하는 방법을 찾지 못했습니다.

scaffold setup --scaffoldType customfaces 

잘 작동하지만,

scaffold from-entity com.domain.entity.* --scaffoldType customfaces 

이 실패합니다.

아무도 같은 문제가 있습니까? 내가 엉망이 될까?


업데이트 # 1은 :

자원 로딩은 단조 콘솔 내에서 실행하는 경우에만 실패합니다. JUnit 테스트가 정상적으로 작동합니다. 나는 metawidget 플러그인 리소스 로더가 새로운 플러그인에서가 아니라 원래의 scaffold-api 컨텍스트에서 metawidget - *. xml을로드하려고합니다.

업데이트 # 2는 :

문제는 깊은 metawidget에 somewehere과의 관계를 위조. 직접 SimpleResourceResolver.openResource()을 사용하면 결과가 유효하다는 것을 알았습니다. 그러나 StaticHtmlWidget.setConfig()을 추가하면 write() 호출에서 Unable to locate com/domain/customfaces/metawidget-entity.xml on CLASSPATH이됩니다. 이 동작을 해결하는 방법을 모르겠습니다.

+1

이전에 언급 한 것처럼 문제가 더 재미 있습니다. Te JUnit 테스트를 작성하고 올바르게 실행했습니다. getShell(). execute ("scaffold from 엔터티 com.domain.entity. * --scaffoldType 사용자 정의 --overwrite --targetDir /"); 위조 콘솔과 관련된 문제 일 수 있습니까? – azendh

답변

0

아마도 Metawidget JAR을 두 번 이상 포함 할 가능성이 있습니까? Forge는 JBoss 모듈을 사용하므로 클래스 패스가 어떻게 구성되는지주의해야합니다.

Metawidget 오류는 기본적으로 'ForgePropertyStyle'이 'PropertyStyle'유형이 아니라고 말합니다. 그러나 ForgePropertyStyle은 실제로 PropertyStyle을 확장합니다 (사용자 인터페이스에서 해당 코드를 변경하지 않은 경우). 따라서 클래스 패스에 두 개의 PropertyStyles가 있어야합니다.

+0

복제 된 플러그인은 metawidget-all 이슈에도 의존하지만,'compile'에서'test'로 범위를 변경하면 플러그인을 설치할 수 없습니다. 'ForgePropertyStyle'을'CustomFacesPropertyStyle' (* Config)로 이름을 바꿉니다. 그러나 예외는 동일합니다. 플러그인은'ForgePropertyStyle'을 참조합니다 (metawidget xml-s도 수정 됨). 이 문제를 해결하는 방법을 알고 계십니까? 나는 완전히 혼란 스럽다. – azendh

+1

ForgePropertyStyle/CustomFacesPropertyStyle이 문제가 아니므로 이름 바꾸기가 도움이되지 않습니다. 문제는 클래스 패스에 두 개의 org.metawidget.inspector.impl.propertystyle.PropertyStyles가 있다는 것입니다. 당신은 1) 기본 스카 폴드면 모듈을 제거하고 단지 사용자 정의 모듈을 가지고 시험해 볼 수 있습니다. 2) 당신에게 비슷한 플러그인 인 https://github.com/forge/plugin-spring-mvc (Metawidget도 사용함)를보고; 3)이 질문을 [email protected] –

+0

에 묻습니다. 문제는 여전히 해결되지 않습니다. 당신의 대답을 이해합니다. classpath에있는 두 개의 metawidget-all 항아리가 있습니다. 그러나 나는 그것을 고칠 수 없습니다 : 나는 mavan 기술이 충분하지 않을 수도 있습니다. :( 1)은 동의어가 아닙니다. 2) 확인해 보았지만 어떤 차이점도 발견하지 못했습니다. 메타 위젯 모듈을 어떻게 의존할까요? (내가 시도한 것처럼,이 모듈은 현 상태와 비슷하지 않습니다.) 3) 아직 시도하지 않았습니다. 누구든지 여기서 도울 수 있기를 바랍니다. 나는 이것이 maven-related 문제라고 생각한다. 그래서 나는 계속 읽고 읽고 노력 중이다. – azendh

관련 문제