čtvrtek 12. srpna 2021

Get the Service Integration Bus Messagin Engine State

# get list of Service Integration Buses
buses=AdminTask.listSIBuses();

# get list of SIB Engines
for bus in buses.split(lineseparator):
 AdminTask.listSIBEngines('[-bus '+bus.split('(')[0]+']').split('(')[0]

# get SIB the status of engine
sibengines=AdminControl.queryNames('WebSphere:type=SIBMessagingEngine,*').split(lineseparator)
for sibengine in sibengines:
 print sibengine.split('name=')[1].split(',')[0]+" "+AdminControl.invoke(sibengine,'state');
 

Obtain the SystemOut.log, SystemErr.log, native_stdout, native_stderr location using wsadmin

server=AdminConfig.getid('/Node: Custom01Node /Server: server1');
systemoutlog=AdminConfig.showAttribute(server, 'outputStreamRedirect');
systemerrorlog=AdminConfig.showAttribute(server, 'errorStreamRedirect');
processDef = AdminConfig.list( 'JavaProcessDef', server )
nativelog=AdminConfig.showAttribute(processDef, 'ioRedirect');
adminOperations = AdminControl.queryNames('WebSphere:*,type=AdminOperations,process=server1')
print AdminControl.invoke(adminOperations, 'expandVariable', [AdminConfig.showAttribute(systemoutlog, 'fileName')])
print AdminControl.invoke(adminOperations, 'expandVariable', [AdminConfig.showAttribute(systemerrorlog, 'fileName')])
print AdminControl.invoke(adminOperations, 'expandVariable', [AdminConfig.showAttribute(nativelog, 'stdoutFilename')])
print AdminControl.invoke(adminOperations, 'expandVariable', [AdminConfig.showAttribute(nativelog, 'stderrFilename')])

čtvrtek 6. června 2019

SOAP UI Java API - jak zavolat web service request z Javy


import com.eviware.soapui.impl.wsdl.WsdlInterface;
import com.eviware.soapui.impl.wsdl.WsdlOperation;
import com.eviware.soapui.impl.wsdl.WsdlProject;
import com.eviware.soapui.impl.wsdl.WsdlRequest;
import com.eviware.soapui.impl.wsdl.WsdlSubmit;
import com.eviware.soapui.impl.wsdl.WsdlSubmitContext;
import com.eviware.soapui.model.iface.Response;

public class App
{
    public static void main( String[] args )
    {
        try {
   WsdlProject soapUiProject = new WsdlProject("/tmp/SOAP_UI_PROJECT.xml" );
   WsdlInterface wsdlInterface = (WsdlInterface)soapUiProject.getInterfaceAt(0);
   WsdlOperation searchPersonMultiOperation = wsdlInterface.getOperationByName("searchName");
   WsdlRequest request = searchPersonMultiOperation.getRequestByName("001_Ian_Flemming");
   WsdlSubmitContext wsdlSubmitContext = new WsdlSubmitContext( request );
   WsdlSubmit<WsdlRequest> submit = (WsdlSubmit<WsdlRequest>) request.submit( wsdlSubmitContext, false );
   Response response = submit.getResponse();
   System.out.println(request.getRequestContent());
   System.out.println("-------------------");
   System.out.println(response.getContentAsString());
  } catch (Exception e) {
   e.printStackTrace();
  }
       
    }
}

úterý 2. ledna 2018

JDBC připojení do SQLite databáze

Pro JDBC  připojení do SWQLite jsem použil následující JDBC driver:


https://bitbucket.org/xerial/sqlite-jdbc/downloads/

Nastavení Squirrel pro připojení do SQLite

Ve Squirrel je potřeba přidat nový driver viz následující obrázek.

Name: SQLite
Example URL: jdbc:sqlite:sqlite_databsase_file_path
Website URL: https://bitbucket.org/xerial/sqlite-jdbc
Extra Class Path: přidat cestu k jar jdbc driveru (sqlite-jdbc-3.21.0.jar)
Class Name: org.sqlite.JDBC



 Připojení do databáze potřebuje pouzte jeden parametr a to URL pro připojení jdbc:sqlite:<cesta k databázovému souboru> například jdbc:sqlite:C:/temp/home-assistant-v2.db. Tento typ připojení nepodporuje víceuživatelský přístup, proto může být k databázi připojení pouze jeden klient. Pokud tedy databázi používá nějaká aplikace, musíte aplikaci před připojení Squirrel vypnout.


pátek 25. srpna 2017

SOA a Microservices

Odkaz na článek porovnání konceptů SOA a microservices

https://www.ibm.com/developerworks/websphere/library/techarticles/1601_clark-trs/1601_clark.html

středa 21. června 2017

Jak použít automatické testování REST ve Fitnesse?

Fitnesse - nástroj pro testery, umožňuje psát testy ve formě wiki stránek, spouštět je, generovat reporty a zobrazovat historii provedených testů.

Fitnesse je rozšiřitelný ve formě tzv. fixture. Pro REST rozhraní jsou také možná fixture. Jedním z nich je RestFixture. Náved na přípravu prvního fixture je:

https://stackoverflow.com/questions/35753103/workflow-of-creating-tests-using-restfixture

Fixture je připravený jako Maven archetype. Postup podle návodu zafungoval napoprvé.

Drobné rozdíly:

1)

v dependency jsem použil novější verzi Fitnesse:

 <dependency>
    <groupId>org.fitnesse</groupId>
    <artifactId>fitnesse</artifactId>
    <version>20161106</version>
</dependency>
 2)

pro start jsem musel použít příkaz call start.bat,  samotný start.bat mi nezafungoval správně.



Postup - přesně podle https://stackoverflow.com/questions/35753103/workflow-of-creating-tests-using-restfixture :

1) Připravit mvn projekt se základem fixture z již hotového připraveného archetypu.

mvn archetype:generate -DgroupId=com.ibm.cz.fitnesse.rest
.sample -DartifactId=scratch -DarchetypeArtifactId=maven-archetype-quickstart -D
interactiveMode=false

2) Přidat dependency

<dependency>
        <groupId>smartrics.restfixture</groupId>
        <artifactId>smartrics-RestFixture</artifactId>
        <version>4.1</version>
</dependency>
 <dependency>
    <groupId>org.fitnesse</groupId>
    <artifactId>fitnesse</artifactId>
    <version>20161106</version>
</dependency>

a odmazat App.java ze src\main\java\com\ibm\cz\fitnesse\rest\sample

3) Přidat

  <plugin>
  <groupId>org.apache.maven.plugins</groupId>
  <artifactId>maven-dependency-plugin</artifactId>
    <executions>
        <execution>
            <configuration>
                <outputDirectory>${project.build.directory}/dependencies</outputDirectory>
            </configuration>
            <goals>
                <goal>copy-dependencies</goal>
            </goals>
        </execution>
    </executions>
</plugin>

4) Spustit mvn clean package

5) Připravit start.bat s následujícím obsahem:

setLocal EnableDelayedExpansion
set CLASSPATH="
for /R target\dependencies %%a in (*.jar) do (
      set CLASSPATH=!CLASSPATH!;%%a
)
set CLASSPATH=!CLASSPATH!"
java -cp !CLASSPATH! fitnesseMain.FitNesseMain -p 9090 -d src\main\resources -e 0

6) Spustit start.bat: call start.bat

POZOR: pouze start.bat na WIN7 nezafunguje správně

7) Vyzkoušet http://localhost:9090


středa 18. ledna 2017

Vyhození fault Java komponenty v Integration Designer







/**
* Method generated to support implementation of operation "operation1" defined for WSDL port type
* named "SimpleIntf".
*
* The presence of commonj.sdo.DataObject as the return type and/or as a parameter
* type conveys that it is a complex type. Please refer to the WSDL Definition for more information
* on the type of input, output and fault(s).
*/
public DataObject operation1(DataObject input1) throws Throwable{
Service service = locateService_SimpleIntfPartner();
try {
service.invoke("operation1", input1);
} catch (Throwable t) {
System.out.println("Nastala chyba");
com.ibm.websphere.bo.BOFactory boFactory = (com.ibm.websphere.bo.BOFactory) ServiceManager.INSTANCE.locateService("com/ibm/websphere/bo/BOFactory");
DataObject fault = boFactory.create("http://JMSDemoModule", "ServiceFault");
fault.setString("error", t.getMessage());
throw new ServiceBusinessException(fault);
}

return input1;
}