Drools-Guvnor mit Oracle-Backend


Quelle : http://drools.herod.net/

Nachdem mein Guvnor vor einem MySQL-Backend läuft, wird produktiv mit dem großen Bruder gearbeitet: Oracle 11. Beim M2 der 5.2er Reihe von Guvnor gibt es eine wunderbare Funktion im Admin-Bereich, mit der man sich eine repository.xml erzeugen kann. Soweit ok. Doof nur, wenn man dabei zuviel nachdenkt und die xml unbedingt nachbearbeiten muss, denn beim Tag "schema" unmittelbar hinter den anderen Connection-Settings hab ich auch das Schema der Datenbank eingetragen. Wie sich herausstellte, sollte das auch das Problem sein, denn mit "meinem" Schema-String bekam ich andauernd eine NullpointerException, die ich mir einfach nicht erklären konnte. OK, das war ein Milestone, aber trotzdem…

Caused by: javax.jcr.RepositoryException: File system initialization failure.
	at org.apache.jackrabbit.core.config.RepositoryConfigurationParser$6.getFileSystem(RepositoryConfigurationParser.java:1064)
	at org.apache.jackrabbit.core.config.RepositoryConfig.getFileSystem(RepositoryConfig.java:892)
	at org.apache.jackrabbit.core.RepositoryImpl.(RepositoryImpl.java:311)
	at org.apache.jackrabbit.core.RepositoryImpl.create(RepositoryImpl.java:673)
	at org.apache.jackrabbit.core.TransientRepository$2.getRepository(TransientRepository.java:231)
	at org.apache.jackrabbit.core.TransientRepository.startRepository(TransientRepository.java:279)
	at org.apache.jackrabbit.core.TransientRepository.login(TransientRepository.java:375)
	at org.apache.jackrabbit.commons.AbstractRepository.login(AbstractRepository.java:123)
	at org.drools.guvnor.server.repository.RepositoryStartupService.newSession(RepositoryStartupService.java:151)
	... 54 more
Caused by: org.apache.jackrabbit.core.fs.FileSystemException: failed to initialize file system
	at org.apache.jackrabbit.core.fs.db.DatabaseFileSystem.init(DatabaseFileSystem.java:210)
	at org.apache.jackrabbit.core.config.RepositoryConfigurationParser$6.getFileSystem(RepositoryConfigurationParser.java:1061)
	... 62 more
Caused by: java.lang.NullPointerException
	at java.io.Reader.(Reader.java:61)
	at java.io.InputStreamReader.(InputStreamReader.java:55)
	at org.apache.jackrabbit.core.util.db.CheckSchemaOperation.run(CheckSchemaOperation.java:80)
	at org.apache.jackrabbit.core.fs.db.DatabaseFileSystem.init(DatabaseFileSystem.java:197)
	... 63 more

Ein Remote-Debugging in der DatabaseFileSystem-Klasse brachte dann aber zum Vorschein, dass sich tatsächlich alles um das Schema drehte, zu dem der Guvnor beim Start eine passende ddl im Classpath sucht. Hätte ich das mal nicht verändert, denn er Default-Wert im generierten xml ist "oracle" und wie durch Zauberhand fand er dann auch die passende oracle.ddl nach dem Zurück-Ändern auf die generierte repository.xml und startete ohne größeres Aufsehen. Zur Sicherheit hier meine repository.xml für ein Oracle-Backend:




	
		
		
		
		
		
		
    
    
    
        
        
        
        
    

	
	
	
		
			
			
			
			
			
			
				
		
			
			
			
			
			
			
			
			
		
        
            
            
            
            
        
    

    
		
			
			
			
			
			
			
				
		
			
			
			
			
			
			
			
			
		
    

    
        
        
        
        
    

Weiter Infos sind auch auf der Guvnor-Website nachzulesen.