среда, 17 июля 2013 г.

Просмотр зашифрованных паролей Weblogic

Если так случилось что забыт пароль от сервера есть способ восстановления. Первое надо иметь доступ к файловой системе и запустить сервер в remote debug. В файле

<DomainName>/config/config.xml

содержаться пароли в зашифрованном виде:
 

.....
{AES}Mv+trYlNHji2M5RJyvS8xMFjUlICjx9HZe2Fo3uNAy8=
.....
Находим в конфиге нужный нам пароль, копируем вместе с префиксом названия алгоритма шифрования. Подключаемся подцепляемся у дебагу своей средой разработки. Breakpoint можно поставить например в java.lang.Object#equals, тогда точка останова будет будет выполнена мгновенно. Далее через evaluate fragmrnt выполняем следующий код:
new String(new weblogic.security.internal.encryption.ClearOrEncryptedService(
        weblogic.security.internal.SerializedSystemIni.getEncryptionService
                (new java.io.File("d:\\Oracle\\jdevHome\\system11.1.1.6.38.62.29\\DefaultDomain\\").getAbsolutePath()))
        .decryptBytes("{AES}Mv+trYlNHji2M5RJyvS8xMFjUlICjx9HZe2Fo3uNAy8=".getBytes()));
И вуаля
Если нет возможности включить дебаг на сервере, то можно накидать маленькое приложение возрастающее пароль по входящему параметру.

среда, 10 апреля 2013 г.

Перезагрузка Weblogic из Ant

Скрипт предназначен для сценария когда у вас запущен Admin server и вам необходимо перезагрузить Managed server.
	
	
	
	
	

	

	
		
		 
	






		

		${wls.home}
		 
			 
		 

	

суббота, 2 марта 2013 г.

Деплой Webcenter Portal Framework Application через WLST

Встала задача организовать автоматизированный деплой webcenter на разработческую площадку. В качестве билд-сервера у нас используется TeamCity. В качестве самого сборщика ant т.к. ничего другого Oracle нам не предлагает. Скрипт сборки - автогенерированный и создается через JDeveloper: File - New - General - Ant - Build file from project. Сгенерированный ant для использования на блид-сервере ( да и на машинах других разработчиков) не очень пригоден и требует доработки напильником. Все прямые пути к либам файловой системе заменены на зависящие от введенного ant property oracle.middleware.home. Пример:
  
    
      
    

    
      
    
  

  
    
    Windows ojdeploy ${oracle.jdeveloper.ojdeploy.path}
    
    Windows WLST ${oracle.jdeveloper.wlst.path}
  

  
    
    Unix ojdeploy ${oracle.jdeveloper.ojdeploy.path}
    
    Unix WLST ${oracle.jdeveloper.wlst.path}
  

  
    
      
      
      
      
      
      
      
      
      
      
      
    
  
Так же забыл отметить что-бы ojdeploy и все зависимоти были доступны на билд-сервере туда необходимо установить JDeveloper.
Далее рассмотрим сам скрипт деплоя на python:
adminUser=sys.argv[6]
adminPassword=sys.argv[7]
adminUrl=sys.argv[8]
earPath=sys.argv[1]
repositoryName=sys.argv[2]
partitionName=sys.argv[3]
repositoryType=sys.argv[4]
jndiName=sys.argv[5]
applicationName=sys.argv[9]
targetServers=sys.argv[10]

connect(adminUser,adminPassword,adminUrl)
domainRuntime()


def deployAll():
     archive = getMDSArchiveConfig(fromLocation=earPath)
     archive.setAppMetadataRepository(repository=repositoryName,partition=partitionName,type=repositoryType,jndi=jndiName,path=jndiName)
     archive.save()
     deploy(applicationName, earPath, targets=targetServers,remote='true',upload='true',usenonexclusivelock='true')


# Deploy script init
try:
 deployAll()
except:
    print "Unexpected error: ", sys.exc_info()[0]
    dumpStack()
    raise

 Далее пример build.properties для инсталяции Webcenter и integrated Weblogic Server

adminUserName=weblogic
adminPassword=weblogic1
adminUrl=t3://host:7001
repository=mds-CustomPortalDS
partition=custom.webcenter.application
repositoryType=DB
jndi=jdbc/mds/CustomPortalDS
targetServers=WC_CustomPortal

adminUserName=weblogic
adminPassword=weblogic1
adminUrl=t3://localhost:7101
repository=mds-integServerRepos
partition=custom.webcenter.application
repositoryType=File
jndi=/C:/Users/solovyev.vladimir/AppData/Roaming/JDeveloper/system11.1.1.6.38.62.29/DefaultDomain/webcenter/mds-integServerRepos
targetServers=DefaultServer
Из нюансов, для файловой реализации MDS необходимо указывать допольнительную переменную jndi.
Во общем-то все спасибо за внимание!

суббота, 9 февраля 2013 г.

Успешно сдал экзамен Oracle Application Development Framework 11g Essentials

Получил возможность сдать экзамен абсолютно бесплатно в рамках проводимого Oracle Test Fest! Экзамен проходил в академии "ФОРС". Так случилось, что дата проведения экзамена совпала с жутким дедлайном. Пришлось сдавать без какой-либо подготовки...  Экзамен был в виде теста из 70 вопросов и длительностью полтора часа. Постановка некоторых вопросов была довольно объемной, поэтому перевод и осознание вопроса отнимали значительное время. Так как в этот период активно работал с ADF сомнений, что не сдам не было. Однако в течении экзамен осознал, что был излишне самоуверен. Сертификат в материализованном виде, благодоря почте России, мною получен не был. Посылал реквест на переотправку, в ответ получил только ссылку на PDF с электронной версией сертификата.




пятница, 8 февраля 2013 г.

Ошибка ADFv: Could not find selected item matching value


При запуске страницы на поле с ADF BC List of Values возникает ошибка

<FacesCtrlListBinding> <getInputValue> ADFv: Could not find selected item matching value -5353520000000000000000000000 of type: oracle.jbo.domain.Number in the list-of-values.

вместо проставления выбранного значения из списка. Если данные действительно консистентны. То необходимо мапинги полей во View Object где используется LOV. Типы полей должны совпадать.