About Java mapping and java proxy
Hi
Iam new to Xi and basically iam an ABAPER.When iam dooing mappinps or proxies i cant able to understand the java pari cant (javamapping and java proxies) .I need some notes on java mapping and java proxy which is easy to do.And why do we use this java mapping or java proxy particularly when we r having abap mappipng and abap proxy.
thanks in advance
Hi,
refer
Java Mapping
SAP Network Blog: Java Mapping (Part I)
/people/prasad.ulagappan2/blog/2005/06/29/java-mapping-part-i
Java Mapping in XI
https://www.sdn.sap.com/irj/sdn/advancedsearch?cat=sdn_all&query=java+mapping&adv=false&sortby=cm_rnd_rankvalue#
Runtime Environment (Java Mappings) (SAP Library - Partner Connectivity Kit)
http://help.sap.com/saphelp_nw04/helpdata/en/bd/c91241c738f423e10000000a155106/frameset.htm
Java Mapping (SAP Library - Partner Connectivity Kit)
http://help.sap.com/saphelp_nw04/helpdata/en/e2/e13fcd80fe47768df001a558ed10b6/frameset.htm
SAP Network Blog: Testing and Debugging Java Mapping
/people/stefan.grube/blog/2006/10/23/testing-and-debugging-java-mapping-in-developer-studio
SAP Network Blog: Implementing a Java Mapping in SAP PI
/people/carlosivan.prietorubio/blog/2007/12/21/implementing-a-java-mapping-in-sap-pi
"JAVA MAPPING", an alternate way of reading a CSV file
/people/rahul.nawale2/blog/2006/07/18/java-mapping-an-alternate-way-of-reading-a-csv-file
SAP Network Blog: XI Java Mapping Helper (DOM)
/people/alessandro.guarneri/blog/2007/03/25/xi-java-mapping-helper-dom
Java Proxy
Java Proxy Objects (SAP Library - SAP Exchange Infrastructure)
http://help.sap.com/saphelp_nw04/helpdata/en/c5/7d5e3c754e476ee10000000a11405a/frameset.htm
Accessing Active Directory through Java Proxy on SAP Exchange Infrastructure 3.0
https://www.sdn.sap.com/irj/sdn/go/portal/prtroot/docs/library/uuid/10716e9f-23d7-2a10-8c8c-d2665615f8fc
Thanks
Swarup
Similar Messages
-
Doubts about HTTPS requests and Java proxy
Hello,
I need help about SSL connections and Java.
I'm developing a HTTP/S proxy with Java. To test my proxy, I use Firefox. I configure the proxy option in the browser. The proxy works good with HTTP requests, but with HTTPS requests doesn't work and I don't know why.
I explain the steps that I do for a HTTPS request:
* The browser sends a CONNECT message to the proxy.
I check that the proxy receives the CONNECT request correctly.
* The proxy establish a secure connection with the content server.
I use an SSLSocket to connect with my content server, and the SSL handshake is succesful.
* The proxy sends a 200 HTTP response to the client:
I send
HTTP/1.0 200 Connection established[CRLF]
[CRLF]
to the application client (Firefox)
* The proxy sends/receive data to/from Firefox/content server
I have a Socket between Firefox and my proxy, and a SSLSocket between my proxy and my content server. I use two threads to communicate the client and the server.
Java code:
//Thead server-->proxy-->application(Firefox)
ThreadComm tpa = new ThreadComm(bis_serverSSL, bos_app);
//Thread application(Firefox)-->proxy-->server
ThreadComm tap = new ThreadComm(bis_app, bos_serverSSL);
The "tpa" thread reads from the SSLSocket between the proxy and the server and sends data to the Socket between the proxy and Firefox.
The "tap" thread reads from the Socket between the proxy and Firefox and sends data to the SSLSocket between the proxy and the server.
This is the class ThreadComm:
public class ThreadComm extends Thread{
private BufferedInputStream bis = null;
private BufferedOutputStream bos = null;
public ThreadComm(BufferedInputStream bis, BufferedOutputStream bos) {
this.bis = bis;
this.bos = bos;
@Override
public void run() {
int b = -1;
FileOutputStream fos = null;
do {
try {
b = bis.read();
System.out.print((char) b);
fos.write(b);
bos.write(b);
bos.flush();
} catch (Exception ex) {
Logger.getLogger(ThreadAplicacionProxy.class.getName()).log(Level.SEVERE, null, ex);
//b=-1;
} while (b != -1);
}But this doesn't work and I don't know why.
I have an Apache server with the mod_ssl enabled as content server, I can send requests (with Firefox) to the port 80(HTTP request) and 443(HTTPS request) without use my proxy and it works. If I use my proxy, HTTP request works but with HTTPS request doesn't work, I look the log of Apache and I see:
[Tue Apr 27 17:32:03 2010] [info] Initial (No.1) HTTPS request received for child 62 (server localhost:443)
[Tue Apr 27 17:32:03 2010] [error] [client 127.0.0.1] Invalid method in request \x80\x7f\x01\x03\x01
[Tue Apr 27 17:32:03 2010] [debug] ssl_engine_kernel.c(1770): OpenSSL: Write: SSL negotiation finished successfully
[Tue Apr 27 17:32:03 2010] [info] [client 127.0.0.1] Connection closed to child 62 with standard shutdown (server localhost:443)
Why it say? Invalid method in request \x80\x7f\x01\x03\x01 , my proxy sends the data that the Firefox sends.
I think than I have follow the explanations of [1] but doesn't work, I have problems in implementation in Java but I don't know where.
I appreciate any suggestions.
Thanks for your time.
[1] http://www.web-cache.com/Writings/Internet-Drafts/draft-luotonen-web-proxy-tunneling-01.txtejp, I have checked the socket between the proxy and server and ... You are right! , I was using the port 80 instead of the 443 (incredible mistake!, I'm sorry). I was convinced that I was using the port 443... Well, is a little step, but I still have not won the war :)
If I see the log files of Apache, We can see that something goes wrong.
localhost-access.log
>
127.0.0.1 - - [04/May/2010:17:44:48 +0200] "\x 80\x 7f\x01\x03\x01" 501 219
>
localhost-error.log
>
[Tue May 04 17:44:48 2010] [info] Initial (No.1) HTTPS request received for child 63 (server localhost:443)
[Tue May 04 17:44:48 2010] [error] [client 127.0.0.1] Invalid method in request \x80\x7f\x01\x03\x01
[Tue May 04 17:44:48 2010] [debug] ssl_engine_kernel.c(1770): OpenSSL: Write: SSL negotiation finished successfully
[Tue May 04 17:44:48 2010] [info] [client 127.0.0.1] Connection closed to child 63 with standard shutdown (server localhost:443)
>
I think that this happens because Apache receives the data without decrypt, this is the reason because in the log we can see the "Invalid method in request \x80\x7f\x01\x03\x01". This supposition is true?
ejp, you say that the "Termination is quite tricky." I have changed my code following yours suggestions (using the join and the shutdownOutput) but the threads don't die.
I explain you what I do:
(in time 1)
I launch the thread (threadFirefoxToApache) that reads data from Firefox and sends to Apache.
I launch the thread (threadApacheToFirefox) that reads data from Apache and sends to Firefox.
(in time 2)
threadFirefoxToApache sends the firts data to the server.
threadApacheToFirefox is waiting that the server says something.
(in time 3)
threadFirefoxToApache is waiting that Firefox says something.
threadApacheToFirefox sends data to Firefox.
(in time 4)
threadFirefoxToApache is waiting that Firefox says something.
threadApacheToFirefox is waiting that Firefox says something.
and they are waiting... and never finish.
In time 2, these first data are encrypted. The server receives these data and It doesn't understand. In time 3, the server sends a HTTP response "501 Method Not Implemented", here there is a problem because this data must be encrypt. According to the documentation that I read, the proxy cannot "understand" this data but I can "understand" this data. What's happen?
Firefox encrypt the data and send to the proxy. This It's correct.
The proxy encrypt the data another time, because I use the SSLSocket to send the data to the server. Then the server receives the data encrypted two times, when decrypt the data gets the data encrypted one time. And this is the reason why the server doesn't understand the data that sends Firefox. It's correct? May be.
Then If I want that the server receives the data encrypted one time I need to use the socketToServer, It's correct?
I will supposed that yes. If I use the socketToServer, the proxy doesn't understand nothing, because the data received from the socketToServer are encrypted (I only see simbols), but the Apache log says that there is a problem with the version? (If I use the socketToServer the threads die)
>
[Tue May 04 19:55:42 2010] [debug] ssl_engine_kernel.c(1760): OpenSSL: Loop: SSLv3 read finished A
[Tue May 04 19:55:42 2010] [debug] ssl_engine_kernel.c(1760): OpenSSL: Loop: SSLv3 write change cipher spec A
[Tue May 04 19:55:42 2010] [debug] ssl_engine_kernel.c(1760): OpenSSL: Loop: SSLv3 write finished A
[Tue May 04 19:55:42 2010] [debug] ssl_engine_kernel.c(1760): OpenSSL: Loop: SSLv3 flush data
[Tue May 04 19:55:42 2010] [debug] ssl_engine_kernel.c(1756): OpenSSL: Handshake: done
[Tue May 04 19:55:42 2010] [info] Connection: Client IP: 127.0.0.1, Protocol: TLSv1, Cipher: RC4-MD5 (128/128 bits)
[Tue May 04 19:55:42 2010] [debug] ssl_engine_io.c(1817): OpenSSL: read 5/5 bytes from BIO#29bd910 [mem: 29ea0a8] (BIO dump follows)
[Tue May 04 19:55:42 2010] [debug] ssl_engine_io.c(1750): -------------------------------------------------------------------------
[Tue May 04 19:55:42 2010] [debug] ssl_engine_io.c(1789): | 0000: 80 7f 01 03 .... |
[Tue May 04 19:55:42 2010] [debug] ssl_engine_io.c(1793): | 0005 - <SPACES/NULS>
[Tue May 04 19:55:42 2010] [debug] ssl_engine_io.c(1795): ------------------------------------------------------------------------
[Tue May 04 19:55:42 2010] [debug] ssl_engine_kernel.c(1770): OpenSSL: Write: SSL negotiation finished successfully
[Tue May 04 19:55:42 2010] [info] [client 127.0.0.1] SSL library error 1 reading data
[Tue May 04 19:55:42 2010] [info] SSL Library Error: 336130315 error:1408F10B:SSL routines:SSL3_GET_RECORD:wrong version number
[Tue May 04 19:55:42 2010] [debug] ssl_engine_kernel.c(1770): OpenSSL: Write: SSL negotiation finished successfully
[Tue May 04 19:55:42 2010] [info] [client 127.0.0.1] Connection closed to child 63 with standard shutdown (server localhost:443)
>
What option is the correct? I need use the SSLSocketToServer or socketToServer to send/read the data to/from the server?. Use the SSLSocket has sense because the data travel in a secure socket, but use the Socket also has sense because the data are encrypted and they are protected by this encription. It's complicated... -
Java mapping and no content conversion
Hi all,
I have a file to idoc scenario. The file is in flat idoc format and I've made my own java mapping that gets the flat file and converts it to idoc xml format.
I don't use content conversion in the sender file adapter because I don't wan't the file to be converted to xml before the java mapping processes it. But with this configuration my scenario fails in the interface determination step, as it doesn't find an xml to apply the java mapping.
Is there a way to make it work as I want? (with my java mapping and not applying content conversion?) If not, is there a way to put all the file in a single xml tag using content conversion?
I mean something like this:
<FILE>
</FILE>
This way it would be easy for my java mapping to remove the tags and work with the flat file as it does now.
Thanks in advance.Thanks Stephan for your answer.
In fact I have the defined that interface, as well as a dummy data type and message type that uses it. I still get the error though. My guess is that, as I don't use content conversion in file adapter (message protocol is file) the outbound message is in fact not in xml format, and it cannot identify it in interface determination. That's my guess but perhaps I'm wrong?
This is the error I'm getting:
<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
- <!-- Interface Determination
-->
- <SAP:Error xmlns:SAP="http://sap.com/xi/XI/Message/30" xmlns:SOAP="http://schemas.xmlsoap.org/soap/envelope/" SOAP:mustUnderstand="">
<SAP:Category>XIServer</SAP:Category>
<SAP:Code area="IF_DETERMINATION">CX_ID_PLSRV</SAP:Code>
<SAP:P1>No interface determination found for outbound interface http://********.****/EDELIVERY.SI_OUT_A_0596_RECADV: Error while determining root tag of XML: BOM / charset detection failed</SAP:P1>
<SAP:P2 />
<SAP:P3 />
<SAP:P4 />
<SAP:AdditionalText />
<SAP:Stack>Error when determining the inbound interface: No interface determination found for outbound interface http://********.****/EDELIVERY.SI_OUT_A_0596_RECADV: Error while determining root tag of XML: BOM / charset detection failed No interface determination found for outbound interface http://********.****/EDELIVERY.SI_OUT_A_0596_RECADV: Error while determining root tag of XML: BOM / charset detection failed Error while determining root tag of XML: BOM / charset detection failed Error while parsing an XML stream: 'BOM / charset detection failed'.</SAP:Stack>
<SAP:Retry>M</SAP:Retry>
</SAP:Error>
Any idea? -
Java Mapping and Graphical Mapping
Hi All,
Could any one clarifies the situation where we need to write in a same interface ,
Both Java mapping and Graphical mapping.
Regards,
venu.Hi,
Here is a scenario where you might need to use both graphical and user defined functions.
source: <fname> <lname> <filename>
target: <name> <filetype>
Suppose, you need to concatenate fname and lname into the target <name> tag, you could use the normal graphical mapping using the concat function.
<fname>\
concat <name>
<lname>/
next, if we need to extract only the filetype from the filename, for example, if we have filename.txt... and we want only the value .txt, we need to write a user defined function which would achieve this for u, since there are no inbuilt function which can solve this for you in graphical mapping.
Further XSLT mapping comes into picture when we need to create the entire target xml structure. Again, graphical mapping would not be useful here.
Regards,
Smitha. -
XI 7.0 passing attributes between java mapping and message mapping
Hi all,
Here's a newbie question. There is a scenario where an interface mapping has several stages of java mapping and message mapping
I would like to know how to set attributes in the java mapping so that it can be accessed in a message map (or vice versa). What I intend to do is pass some information from one mapping to the other so that action can be taken based on the values passed.
Thank you!Another option is storing the values in the message header in the same way as the Adapter-Specific Message Attributes:
http://help.sap.com/saphelp_nw04/helpdata/en/43/09b16006526e72e10000000a422035/frameset.htm
Just use your own name/namespace combination, which is not used in any adapter.
If possible use the way that Sandro proposed and add the information which you need to additional tags in the payload.
Regards
Stefan -
Throw exception in Java mapping and handle this in BPM
Hi,
I'll use a Java mapping in a BPM transform step. Is it possible to throw an exception inside this Java mapping and handle this in a BPM exception handler?
thanks and regards
VerenaHi Verena,
In a BPM transformation step, I think you can throw exceptions only for system errors.
Let me explain with an example, one of the ways to handle your scenario:
Lets assume your Java Mapping fails then you can trap that exception in your Java mapping and compose an XML message which indicates that an error has occurred.
say for e.g.
<intermediateStructure>
<SatusDocument>
<StatusCode>ERROR</StatusCode>
<ErrCode>123</ErrCode>
<ErrDesc><!populate the thrown exception details></ErrDesc>
</StatusDocument>
<Payload>
<!contains actual XML message with data>
</Payload>
</intermediateStructure>
if Java mapping is Successful, you can compose the XML message as follows:
<intermediateStructure>
<SatusDocument>
<StatusCode>SUCCESS</StatusCode>
<ErrCode>0</ErrCode>
<ErrDesc></ErrDesc>
</StatusDocument>
<Payload>
<!contains actual XML message with data>
</Payload>
</intermediateStructure>
You can use BPM switch operation to switch to different processing branches say for e.g. "error" branch or "success" branch by examining the value of <StatusCode> tag.
Hope it helps !
Regards,
Sridhar -
Java.util.Map and java.util.HashMap samples
Hi.
Please, I need some code samples of java.util.Map and java.util.HashMap interfaces. I have problems to retreive objects in the map.
Cheers,
CataTry the tutorial:
http://java.sun.com/docs/books/tutorial/collections/index.html -
Java io and Java nio, which is faster to binary io?
Anybody can advise me about java io and java nio ?
I want to write the faster code to read and write binary files.
I'm going to read/write
- individual elements (int, double, etc)
- arraylists
- objects
Also I'm going (or I'd want) to use seek functions.
ThanksAnybody can advise me about java io and java nio ?
I want to write the faster code to read and write binary files.Which is "faster" depends on exactly how you're using them. For example, a MappedByteBuffer is usually faster for random access than a RandomAccessFile, unless your files are so large (and your accesses so random) than you're constantly loading from disk. And it's not at all faster for linear uni-directional access than a simple FileInputStream.
So, rather than expecting some random stranger telling you that one is faster than the other without knowing your project, perhaps you should tell us exactly how you plan to use IO, and why you think that one approach may be faster than the other. -
Java SE5 and Java EE5 difference
What is the difference between Java SE5 and Java EE5? Also difference btwn SDK and JDK? I am confused about these basic concepts.
Thanks
GeetJava Platform, Enterprise Edition is a related specification which includes all of the classes in Java SE, plus a number which are more useful to programs which run on servers as opposed to workstations.
Java EE includes several API specifications, such as JDBC, RMI, e-mail, JMS, web services, XML, etc, and defines how to coordinate them. Java EE also features some specifications unique to Java EE for components. These include Enterprise JavaBeans, servlets, portlets (following the Java Portlet specification), JavaServer Pages and several web service technologies. -
Java Platform 7u9 and Java Deployment Kit plug-ins are yellow and asked to be updated.
The problem is that there is no other version than I have already installed.
Even if I try to instal this latest version again I've get the message that I already have the latest version.
The same problem was with Flashplayer where I installed the latest version but three days Firefox asked to update the plugin.
The last one is now ok but Java Platform and Java Deployment Kit is hopeless.
Why it ask for an update if there is none?
What should or can I do? I always be careful and patch my pc if necesserry.
All my friends who are working with Firefox have the same problem.
Can anybody tell me whats going on here?
greetings, Mimi321Hi
There is still an issue for me. When i check to see if add-ons are up to date it identifies "Java(TM) Platform SE 7 U9" as out-of-date and gives me an orange "Update" action. When i hit this it takes me to the Java website giving me "Recommended Version 7 Update 9". This is the one i've already got so i cannot get rid of the orange Update action buttons.
Furthermore, if i try the link earlier in this thread to test to see which version of Java i should be using it says "Congratulations! You have the recommended Java installed (Version 7 Update 9)" so i'm not sure what this talk of version 7.10 is about? -
What're the differences between JSP, Java Script, and Java Applet?
I am confused by the concepts: JSP (Java Server Page), Java Script, and Java Applet? What are their main differences?
I don't know about differences, but one of their main similarities is that each of them has a page in Wikipedia.
JSP
JavaScript
[Java applet|http://en.wikipedia.org/wiki/Java_applet]
There. That should give you enough information. -
Whats is difference between Java JRE and Java SDK
Hi,
what is the difference between Java JRE and Java SDK...
i think both of them have the same set of files to be installed...
I am not able to understand where they differThe JRE (Java runtime Environment) contains just the stuff necessary to run Java and the SDK (System Development Kit) contains the extra stuff necessary (and also helpful) to develop in Java.
-
I am a IT graduate and I still need some clarification on the relationship between Java SE and Java EE API. Does EE include SE?
For application development, I know I can use only SE without the EE, but can I use EE alone without SE?
Any good articles addressing my questions?
Thank you very much
RJava EE in fact extends java SE, its primarily aim is to simplify developing multitier enterprise applications (Java SE provides all the necessary basic libraries etc.)
Because Java EE is an extension of Java SE, you cant use EE without SE - without SE there is no EE. -
Help Needed in Creating Java Class and Java Stored Procedures
Hi,
Can anyone tell how can i create Java Class, Java Source and Java Resource in Oracle Database.
I have seen the Documents. But i couldn't able to understand it correctly.
I will be helpful when i get some Examples for creating a Java Class, Java Source and Stored Procedures with Java with details.
Is that possible to Create a Java class in the oracle Database itself ?.
Where are the files located for the existing Java Class ?..
Help Needed Please.
Thanks,
Murali.vHi Murali,
Heres a thread which discussed uploading java source file instead of runnable code on to the database, which might be helpful :
Configure deployment to a database to upload the java file instead of class
The files for the java class you created in JDev project is located in the myworks folder in jdev, eg, <jdev_home>\jdev\mywork\Application1\Project1\src\project1
Hope this helps,
Sunil.. -
JAVA beans and JAVA related services require Oracle client to be installed?
Can you please advice whether an application server that make use of JAVA beans and JAVA related services require Oracle client to be installed? For an example if the solution build based on Java and JBOSS to be used as application server, do we still require oracle client to be installed and configure the tnsnames in order to communicate to database server?
SHANOJ wrote:
Can you please advice whether an application server that make use of JAVA beans and JAVA related services require Oracle client to be installed? For an example if the solution build based on Java and JBOSS to be used as application server, do we still require oracle client to be installed and configure the tnsnames in order to communicate to database server?Oracle client is not required when JDBC is used to connect to the remote DB
Maybe you are looking for
-
Error while deploying Web Dynpro Demo Kit
Hi experts, I tried to deploy the SCAs in the NWDS. The problem is that I can´t deploy the "HM-WDUIDMKTCNT.sca". Do someone know why? I get this error notification: S U M M A R Y: Failed deployments:1 ASJ.dpl_dc.001085 An error occurred while deployi
-
Which of the following will exactly copy a file in Photoshop CS5?
Which of the following will exactly copy a file in Photoshop CS5?
-
Purchase Order changing Sales Order Number when printing.
Hi all, I have a client who is trying to print a Purchase Order and when they go to Print or do a Print Preview the Sales Order number changes from 2259 to 2264. The customer is using SAP Business 1 2005A SP01 Pl43. If anyone has heard of this
-
TS2972 apple tv and iPhone library issue
hi, I have an apple tv set up and I can see my computers library on the list on the tv, my question is how / can I set apple tv up so that I can see my wife's music from her iPhone on apple tv?
-
System security application addon
What is "System security application 1.0" addon? Is it firefox software? Why it's getting installed after i've remvoed it?