Erfahrungen


I currently working with IBM ProcessServer and I created a BPEL process doing some stuff.

I wanted to use the Human Task API inside a snippet. I got this error message:

javax.naming.NameNotFoundException: Name comp/env/ejb not found in context “java:”

How to make it work:

Add a reference to the HumanTaskManager EJB at your EJB project, in my case this was TestProcessEJB . There is a ejb-jar.xml under ejbModule/META-INF/. Don’t forget to add the JNDI name to the EJB reference at the references tab. If this JNDI name is not set you will receive such an error message:

Stack-Trace: com.ibm.websphere.naming.CannotInstantiateObjectException: Exception occurred while the JNDI NamingManager was processing a javax.naming.Reference object.  Root exception is javax.naming.NameNotFoundException: Context: ctrNode01Cell/nodes/wps/servers/server1, name: ejb/HumanTaskManagerHome: First component in name HumanTaskManagerHome not found.  Root exception is org.omg.CosNaming.NamingContextPackage.NotFound: IDL:omg.org/CosNaming/NamingContext/NotFound:1.0

java.lang.ClassCastException: Unable to load class: com.ibm.task.api._HumanTaskManagerHome_Stub

Now have have to package task137650.jar  with your enterprise application. In my case I had to place this file to TEST_ProcessWeb\WebContent\WEB-INF\lib\task137650.jar. In my case I found it here: IBM\Rational\SDP\6.0\runtimes\bi_v6\ProcessChoreographer\client

If you work with the BusinessFlowManager Bean inside your snippet you have to add bpe137650.jar.

Now this code would work inside a Java Snippet:

TKIID tkiid = null;
try
{
System.out.println(”Prozess Starter ” + processInstance().getStarter());
// Obtain the default initial JNDI context

Context initialContext = new InitialContext();
Object resultHTMHome = initialContext.lookup(”java:comp/env/ejb/HumanTaskManagerHome”);

// Get the home interface
HumanTaskManagerHome taskHome =
(HumanTaskManagerHome) javax.rmi.PortableRemoteObject.narrow(resultHTMHome, HumanTaskManagerHome.class);

// Create the EJB
HumanTaskManager taskManager = taskHome.create();

QueryResultSet result = taskManager.query(”DISTINCT TASK.TKIID”,
“TASK.NAME = ‘ATestTask’”,
(String)null, (Integer)null, (TimeZone)null);
if (result.size() > 0)
{
result.first();
tkiid = (TKIID) result.getOID(1);
System.out.println(”TKIID+ ” + tkiid.toString() );
Task startCreateECOTask = taskManager.getTask(tkiid);
String ownerOfStartCreateECOTask = startCreateECOTask.getOwner();startCreateECOTask.
System.out.println(”ownerOfStartCreateECOTask ” + ownerOfStartCreateECOTask);
}
}
catch (Exception e)
{
e.printStackTrace(System.out);
}

com.ibm.websphere.webservices.Constants.REQUEST_TRANSPORT_PROPERTIES contains this string: com.ibm.websphere.webservices.requestTransportProperties

This constant is available since Webpshere App Server 6.0.  It’s quite easy to add a HTTP transport header to a JAX-RPC-Client-Stub, look to this:

String endpoint = “http://localhost:8080/YOURAPP/services/YourService”;

java.net.URL endpoint = new URL(endpoint );

YourServiceLocator locator = new YourServiceLocator ();
YourService stub= locator.getYourService(endpointUrl);

java.util.HashMap sendTransportHeaders = new java.util.HashMap();
sendTransportHeaders.put(”Cookie”,”YourCookieName=YourCookieValue”);
// this is needed for basic authentication header:

((javax.xml.rpc.Stub) stub)._setProperty(javax.xml.rpc.Stub.USERNAME_PROPERTY, “user”);
((javax.xml.rpc.Stub) stub)._setProperty(javax.xml.rpc.Stub.PASSWORD_PROPERTY, “password”);
((javax.xml.rpc.Stub) stub)._setProperty(Constants.REQUEST_TRANSPORT_PROPERTIES, sendTransportHeaders);

//now call your service

stub.anyMethod();

I want to search for some text in a directory containing log files. I want to know all lines containg this text, I use this command:

find . -type f -print | xargs grep “[text you want to search for]”

I wanted to create a webservice client with Rational Application Developer and Websphere Integration Developer. With both products I got this message:

IWAB0014E Unexpected exception occured.

This exception occurs when there is not a configured server for your client environment in the workbench. The workaround is to create at least one server via New -> Server. It worked for me.

There are some static methods which can be used within a process snippet to perform some context relevant functions, for e.g. processInstance() returns a ProcessInstanceData object of the  current process. processInstance().getStarter() returns process starter user id. There are some other methods, further information see here.

‘Error 403 Forbidden!’ was returned as response to a GET request to the IBM Workplace startpage because of a corrupt LtpaToken. If you get such an exception (see below) have look to the LtpaToken cookie. It can’t be verified, in my case last two characters of the LtpaToken cookie value were missing.

WebCollaborat A SECJ0056E: Authentication failed for reason 310

Manche Log-Meldungen lesen sich einfach nur göttlich:.

CWTKE0036I: Der Dämon zur Aktualisierung von Staff-Abfragen hat  0 Aktualisierungsoperationen ausgelöst.

achso, aha und jetzt?

( in english: The Staff Query Refresh Daemon has triggered {0} refresh operations.)

Nun eins ist sicher, mit ‘Dämon’ ist nichts mit Hörnern am Kopf gemeint, sondern ein Hintergrundprozess.

Nun ein konkretes Problem habe ich mit der Meldung nicht. Bei Google gibt es zu dieser Meldung drei Treffer von IBM, klar die Meldung kommt vom Log-File eines IBM Process Servers.

Die Meldung kommt genauer gesagt von der Komponente HTM. Das dürfte der Human Task Manager sein. Im Moment verwende ich in meinem BPEL Prozess allerdings keine Human Tasks, deswegen gibt es auch nichts mit Personal zu belegen. Der Prozess, der für die Belegung von Human Tasks mit “Personal” zuständig ist hat also nichts zu tun, ok. Deswegen bekomme ich die Meldung um genau darüber informiert zu werden.

nun gut let’s go ahead.

Der Henry’s Coffee World AG (HCW) hatte ich empfohlen Produktvideos für deren Online-Shop zu erstellen. HCW ist eine kleine Kaffeehauskette mit Sitz in Ulm. In deren Online-Shop werden frisch geröstete Kaffeespezialitäten aus aller Welt verkauft.

Wie man sich vielleicht vorstellen kann, gibt es beim Kaffee, ähnlich wie beim Wein, sehr viele Geschmacksfeinheiten zu entdecken. Sprich das was HCW online an Kaffeebohnen verkauft ist erklärungsbedürftig. Die Idee war Produktvideos zu erstellen, die die unterschiedlichen Kaffeesorten vorstellen. Inspirit war die Idee von wine library tv, über deren Konzept ich bei Robert Basic gelesen habe.

Jedenfalls ist inzwischen das dritte Video über den Espresso Monsooned Malabar im Blog der Henry’s Coffee World AG zu finden, zudem noch ein paar Takte zum Making-Off. Das Video ist natürlich auch direkt beim Produkt im Shop zu finden.

Ich denke das Video ist gut gelungen, vor allem im Hinblick auf die eingesetzten Mittel. In diesem Zusammenhang ist vielleicht auch der Artikel über den ersten Dreh lesenswert. Ich denke auch, dass die Videos stetig besser werden, vor allem beim Ton besteht noch Potential, aber das wissen die Macher selber auch.

Der Schauspieler Markus Hummel hat zusammen mit Herrn Kirschner von HCW (hinter der Kamera) bisher drei Videos erstellt. Geplant ist noch weitere Videos umzusetzen.

Um zu prüfen ob die Videos ankommen messen wir die durchschnittliche Verweildauer der bisher drei Produktwebseiten und vergleichen die Zahlen mit dem vergangen Jahr. Zumindest bekommen wir so einen Anhalt ob die Videos gesehen werden. Über andere Erkenntnisse werde ich hier berichten.

Für mich steht jedenfalls fest, das Produktvideos ein neuer Trend im Online-Business sind. Produktclips findet man bei Amazon und Tchibo, auch bei Pearl finden sich zahlreiche Produktvideos.

« Previous PageNext Page »