SAP wsdls used with Axis2 to generate proxies
Hello,
I am working on building prototype scenarios using SAP web services. I am using FU2 system.
Please let me know how SAP wsdls could be used with Axis2 to generate the proxies.
Any tutorial on the same would be helpful.
Thanks,
Apurv
Hello Apurv,
I don't know Axis2 but I think by using Basic Auth to retrieve the WSDL File you should be able to create a local Proxy and call the Web Service. Also have a look at <a href="http://www.wso2.net/kb/161">How to configure Axis2 to support Basic, NTLM and Proxy authentication?</a>.
Regards
Gregor
Similar Messages
-
Can SAP be used with Linux & Unix...
Hi there ,
I got a query that whether SAP can be used with Unix & Linux Operating System ...
Thanks & Regards
Kaushik ChoudhuryÝes, Any ERP package can be used at any of the OS with any of the firewall or secure access systems. That is one of the advantages of going for ERP systems over custom applications. Custom applications are OS and database dependent while ERPs are mostly not.
SAP can be installed in Windows, Linux, Unix in various databases too.
Hope this helps you.
Reward if it helps. -
Connecting SAP CRM with Xcelsius to generate dashboards
Post Author: ppchandrasekar
CA Forum: Xcelsius and Live Office
Hi Team,
I am new to BOBJ and its components. I want to integerate SAP CRM system with Xcelsius to generate dashboards. As per my understanding only through three sources we can generate Xcelsius dashboards
1) Excel sheet 2) Web services 3) Live Office
Now in this case, how can I generate Xcelsius dashboards. How can I connect it to CRM system and How can I fetch the data from it?
Regards,
chanPost Author: amr_foci
CA Forum: Xcelsius and Live Office
to create dashboards with xcelsius is not a big issue, just you've to understand how u get the data from ur database , for the excel sheet its a primary thing that make the xcelsius dashboards work, for the other things its just a work arounds to let ur data come live
like "Live Office" , or "Web Service" or "XML Data map",,,, etc
based on ur business and ur available tools, you can use anything of them to get the data life to the Xcelsius dashboards, read the xcelsius developer guide from business objects thats may help you much around this issue
good luck -
Problem using WSDL from SAP in IBM's RAD for generating web service client
When importing a WSDL from the ABAP stack on a SAP 6.40 system into IBM's RAD tool for generating a web service client there are errors with the soap fault classes that get generated. The WSDL declares the types for the faults with WebServiceName.RfcException and these have elements of name, text, and message. When the tools see this in the WSDL they generate classes that extend the Java exeception class and this causes an error because the "message" name conflicts with the standard java exception message. Has anyone else ran into this problem? It seems like a basic problem many java tools for generating web service client proxies would have because the soap faults get turned into java exceptions. This name conflict of the java exception with the WSDL fault definition means that code always needs to be adjusted and cannot simply use the classes that are generated from the WSDL. Anyone run across this or a similar problem in the java environment using the SAP WSDL?
AaronHi,
Hello again .
Have you tried your service using soapui ?
You can use your WSDL as input .
In order to eliminate eclipse problem try this service:(I just did)
http://www.oorsprong.org/websamples.countryinfo/CountryInfoService.wso?WSDL
Regards.
package main;
import java.io.FileInputStream;
import java.rmi.RemoteException;
import java.util.Properties;
import org.oorsprong.www.websamples_countryinfo.CountryInfoServiceSoapType;
import org.oorsprong.www.websamples_countryinfo.CountryInfoServiceSoapTypeProxy;
import org.oorsprong.www.websamples_countryinfo.TCountryCodeAndName;
public class Main {
public static void main(String[] args) {
try {
final Properties properties = new Properties();
properties.load(new FileInputStream("properties.ini"));
System.getProperties().putAll(properties);
} catch (final Exception exception) {
exception.printStackTrace();
new Main();
public Main() {
try {
final CountryInfoServiceSoapType infoServiceSoapType = new CountryInfoServiceSoapTypeProxy();
final TCountryCodeAndName[] tCountryCodeAndNames = infoServiceSoapType.listOfCountryNamesByName();
for (final TCountryCodeAndName tCountryCodeAndName : tCountryCodeAndNames) {
System.out.println(tCountryCodeAndName.getSName());
} catch (final RemoteException exception) {
exception.printStackTrace(); -
To generate a wsdl using JAX-WS in JBOSS with java program but without EJB
Hi,
I am using JAX-WS to generate webservices using JBOSS application server by writing a java program.
My sample java program includes :which takes an i/p name as string and displays out put as "Hello name",with the use of annotations.And,also have written web.xml for it.If I start JBOSS without adding project to it,it is starting.BUt If I add project to it the server is not publishing.Its getting like:"publishing JBOSS 4.2.2....:waiting for virtual machine to exit".
I have followed the link:*http://www.javabeat.net/articles/2007/10/creating-webservice-using-jboss-and-eclipse/3*
to do this,where in it was given that by means of auto build process of eclipse IDE war file generates in default jboss folder.But which is not happening,so that,am unable to generate wsdl file..
Can any body help me?
1) why jboss is not publishing after adding project to it?
2) why war file is not generating in the default jboss folder?
Regards....Yeah sure!!
Overall picture: I wish to expose my OSB services to the third parties using OCSG. For that I've created the Communication services corresponding to each OSB service.
Problem: Integration with the OSB.
At the OSB side I've got JMS queues which interacts with other existing systems in my SOA enviornment. But I'm not getting how to get the OCSG application- triggered request messages in that queue? Please help.
Also I've read about the SOA facades for integration with OSB.Which of the two approaches you will suggest? -
Generating proxies from WSDL utility
Hey ..
Does BEA give a utility to generate client webservice proxy classes from a WSDL
I mean ..instead of any server classes to run clientgen..I have just the WSDL
and I need to generate the proxy classes for myself..I guess it defeats the purpose
of webservices(integration)..if I have to ask the webservice deployer for client
classes ..!
Thanx,
Krish"Krishnan Venkataraman" <[email protected]> wrote in message
news:[email protected]...
>
Manoj , u sure this is a valid link ...coz I cannot see a wsdl athttp://example.com/myapp/myservice.wsdl..
This should be the url to your wsdl. (the wsdl from which you want
to generate the service). You can also copy the wsdl to your local
machine and use the file url.
>
and is there any WLS70 dependency for me to generate these proxies ...Imean do
I need anything from WLS70 (jar files etc)for me to do this task ...?You need wls70. the clientgen ant task is provided by wls70.
>
BTW.. just to update u on our other issue we talked about...have a look atthe
below trace...Thanx,Krish
Shridhar ...
Couple of things ...
1) We will ask the webservice provider put the CR080927_70sp1.jar intheir classpath.
But instead of they generating the client-jar and runningVersionMaker on
this to give us the output , can we do this on ourside...
I understand that there is a way in which the client itself generatestheir
own proxies from the wsdl...In case we can do this ...isCR080927_70sp1.jar required
on
the client side also for generating the proxies...or is it required onthe
WLS70 side only at runtime...once we generate these proxies ourselves thenfor
compiling our 6.0 client and running it , I will use the output ofversionMaker
and wsclient70.jar.
2) Can u possibly mail me the patched jar files which u mention below byemail...and
send me a confirmation email saying u have sent it..coz we seem to havesome firewall
issues going to an outside ftpserver....and the confirmation mail is onlyincase
u send the mail and I do not get it coz of the size etc ..
Thanx,
Krish
Krishnan (Krish) Venkataraman
Bank of America Corp.
Senior Technology Analyst
Email: [email protected]
Work # : 646 733 4248
Cell # : 646 210 5482
-----Original Message-----
From: Shridhar Mysore [mailto:[email protected]]
Sent: Friday, November 01, 2002 12:38 PM
To: Venkataraman, Krishnan
Subject: Invoking 7.0 WS from 6.0 WS client [ Case 367229 ]
Hello Krishnan,
Firstly, your present configuration (involving the use of a SessionBeanin 6.0sp1
as WS client calling into a WS hosted in 7.0sp1) where you are using 7.0webserviceclient.jar
alongside 6.0 weblogic.jar is not supported, nay non-viable. The result ofsuch
a configuration would lead to NoSuchMethodError exceptions which you haveseen
at your end.
Secondly, in order to solve this we need to use portable stubs for WSclients,
a feature, that has been included in
7.0 SP02 ! We, however have made this feature available on 7.0 SP01 aswell in
the form of a one-off patch !
And the following is a procedure for enabling this on 7.0SP01 :
- Add the one-off patch ( CR080927_70sp1.jar ) at the beginning of theCLASSPATH
in your 7.0 server startup script. Ensure that you restart the server forthis
to kick in.
- Generate the client jar for the 7.0 WS
- Run the weblogic.webservice.tools.versioning.VersionMaker utility bysupplying
the client jar to generate re-versioned classes.
- Compile the WS client in 6.0 by supplying the re-versioned classes(generated
from VersionMaker ) and wsclient70.jar (note wsclient70.jar should workwith
6.x versions)
- Run the WS client in 6.0 by supplying the re-versioned classes(generated from
VersionMaker ) and wsclient70.jar
Lastly, please find/download the following files from our FTP server(ftpsupport.beasys.com)
at /pub/case367229
by logging in with username/password as support/pechool
( Note : this password is valid for the week of Oct 27, 2002 )
CR080927_70sp1.jar - one-off patch for 7.0sp01
wsclient70.jar - this would be used instead ofwebserviceclient.jar by
6.x WS client/s
"manoj cheenath" <[email protected]> wrote:
Sure. you can generate client from a WSDL.
Please try this:
<clientgen wsdl="http://example.com/myapp/myservice.wsdl"
packageName="myapp.myservice.client"
clientJar="c:/myapps/myService_client.jar"/>
regards,
-manoj
"Krishnan Venkataraman" <[email protected]> wrote in message
news:[email protected]...
Hey ..
Does BEA give a utility to generate client webservice proxy classesfrom a
WSDL
I mean ..instead of any server classes to run clientgen..I have justthe
WSDL
and I need to generate the proxy classes for myself..I guess it defeatsthe purpose
of webservices(integration)..if I have to ask the webservice deployerfor
client
classes ..!
Thanx,
Krish -
Generating Proxies for SAP Basis Objects?
All,
Is it possible to generate proxies for your interfaces under SAP Basis Component?
1. I checked in SPROXY on my R3 and the SAP Basis Component is not displayed here.What I also noticed is that none of the SWCV's containing Pre Delivered Integration Content is displayed in SPROXY.
Is it necessary that the options , <b>All Objects are Modifiable and Original Objects</b> be selected for Proxies to be generated on the SAP Shipped SWCV's?
2. As a work around ( one which did not work ) I created a Depenedency in the SLD for my SWCV on the SAP BASIS Swcv and I am now able to see the BASIS Objects in the IR under my Custom SWCV .
But even then in SPROXY , (basis Objects )message interfaces are not displayed.
Has anyone tried something of this sort? Is there some setting we need to do to enable proxy generation for SAP Delivered Components?
Regards
Bhavesh
PS: I am able to see my custom SWCV in SPROXY and trigger proxy calls Successfully.
I can generate a Custom Messge interface using the Message Type of the SAP Basis Component and create the Proxy to this Message interface . But, I just want to know if anyone has had success with the above concepts><i>but they are already generated... do you see that ?</i>
I did notice it. But didnt dig deep enough . Will give this a real close look tom morning .
<i>>>>>Does this imply, that we cannot generae proxies on SAP Basis Components?
indeed</i>
That answered my Question Thanks for the info.
I guess I will have to create a message Interface will the Message Type from the BASIS Component and use this Message Interface.
The only issue I am now wondering with this approach would be, what if the Message Type structure changes during some SP upgrade? Due to some new feature being added?
Any experiences to share michal?
Thanks a bunch for all those inputs.
Regards
Bhavesh -
Problem with transferring of data to non sap by using FTP funtion modul
Hi all,
I am doing program of creating excise invoice details and those are transfering to non sap.and I am successfully passing text file to that non sap by using FTP connection.
like FTP_CONNECT
FTP_COMMAND
FTP_R3_TO_CLIENT
FTP_DISCONNECT
But text file details are coming like this
means even line items are all displaying in one row.means continously all line items are coming just like this.
0001000264,070914,,,1000,Steel (pune) Plant,
Retail Outlet 1,0001000265,070914,,,1000,Steel (hyderabad) Plant,Retail Outlet 1
Actually here problem is text file data is continously coming with ','
means actually those values has to come as
0001000264,070914,,,1000,ESSAR Steel (Hazira) Plant,Retail Outlet 1
0001000264,070914,,,1000,ESSAR Steel (Hazira) Plant,Retail Outlet 1
How to split those records when sending the text file.
This is very big issue.I am unable to complete this issue.
Please if any one knows the solution please guide me.
please help me.
Thanks & Regards,
J.GoudHi,
Thanks for reply.
Hi all,
My problem was solved.But I have used GUI_DOWNLOAD.
But i want to place the file name with increasing order number.
Just like suppose 1st i am placing file name as PO000051.txt
next time the file name has to be placed with increasing order like PO000052.txt
I am generating the number in my program actually i am using like this.If i keep file name as
190.0.18.65\qdls\ITGSAP_P\PO000052.txt means only it will place only that file how to increment that number. i am not getting.
If i am keeping
190.0.18.65\qdls\ITGSAP_P\g_file like this means file is not placing.
pls help me if any one knows solution.
CALL FUNCTION 'GUI_DOWNLOAD'
EXPORTING
BIN_FILESIZE = ' '
CODEPAGE = ' '
FILENAME = '
190.0.18.65\qdls\ITGSAP_P\g_file'
FILETYPE = ' '
MODE = ' '
WK1_N_FORMAT = ' '
WK1_N_SIZE = ' '
WK1_T_FORMAT = ' '
WK1_T_SIZE = ' '
COL_SELECT = ' '
COL_SELECTMASK = ' '
importing
filelength =
TABLES
DATA_TAB = ist_file
FIELDNAMES =
EXCEPTIONS
FILE_OPEN_ERROR = 1
FILE_WRITE_ERROR = 2
INVALID_FILESIZE = 3
INVALID_TABLE_WIDTH = 4
INVALID_TYPE = 5
NO_BATCH = 6
UNKNOWN_ERROR = 7
OTHERS = 8.
Regards,
j.Goud -
XML generation with SAP data using XML schema - Reg
Hello experts,
My requirement is , SAP( ztable data ) data has to be transferred to third party software folder.Third party using XML so they requires output from SAP in XML format.
For that third party software guys told me that they will give their own XML schema to me.I have to generate XML file with SAP data using their XML schema.
Generating XML file with their Schema should be underlined.
I studied that call transformation statement helps for this.
Even then i don't have clear idea about this topic.
Please brief me about how to use their XML schema to generate XML with my own sap data.
Thanks in advance experts.
Kumarplease try this same program and see it ....
*& Report z_xit_xml_check
REPORT z_xit_xml_check.
TYPE-POOLS: ixml.
TYPES: BEGIN OF t_xml_line,
data(256) TYPE x,
END OF t_xml_line.
DATA: l_ixml TYPE REF TO if_ixml,
l_streamfactory TYPE REF TO if_ixml_stream_factory,
l_parser TYPE REF TO if_ixml_parser,
l_istream TYPE REF TO if_ixml_istream,
l_document TYPE REF TO if_ixml_document,
l_node TYPE REF TO if_ixml_node,
l_xmldata TYPE string.
DATA: l_elem TYPE REF TO if_ixml_element,
l_root_node TYPE REF TO if_ixml_node,
l_next_node TYPE REF TO if_ixml_node,
l_name TYPE string,
l_iterator TYPE REF TO if_ixml_node_iterator.
DATA: l_xml_table TYPE TABLE OF t_xml_line,
l_xml_line TYPE t_xml_line,
l_xml_table_size TYPE i.
DATA: l_filename TYPE string.
PARAMETERS: pa_file TYPE char1024 DEFAULT 'c:temporders_dtd.xml'.
* Validation of XML file: Only DTD included in xml document is supported
PARAMETERS: pa_val TYPE char1 AS CHECKBOX.
START-OF-SELECTION.
* Creating the main iXML factory
l_ixml = cl_ixml=>create( ).
* Creating a stream factory
l_streamfactory = l_ixml->create_stream_factory( ).
PERFORM get_xml_table CHANGING l_xml_table_size l_xml_table.
* wrap the table containing the file into a stream
l_istream = l_streamfactory->create_istream_itable( table = l_xml_table
size = l_xml_table_size ).
* Creating a document
l_document = l_ixml->create_document( ).
* Create a Parser
l_parser = l_ixml->create_parser( stream_factory = l_streamfactory
istream = l_istream
document = l_document ).
* Validate a document
IF pa_val EQ 'X'.
l_parser->set_validating( mode = if_ixml_parser=>co_validate ).
ENDIF.
* Parse the stream
IF l_parser->parse( ) NE 0.
IF l_parser->num_errors( ) NE 0.
DATA: parseerror TYPE REF TO if_ixml_parse_error,
str TYPE string,
i TYPE i,
count TYPE i,
index TYPE i.
count = l_parser->num_errors( ).
WRITE: count, ' parse errors have occured:'.
index = 0.
WHILE index < count.
parseerror = l_parser->get_error( index = index ).
i = parseerror->get_line( ).
WRITE: 'line: ', i.
i = parseerror->get_column( ).
WRITE: 'column: ', i.
str = parseerror->get_reason( ).
WRITE: str.
index = index + 1.
ENDWHILE.
ENDIF.
ENDIF.
* Process the document
IF l_parser->is_dom_generating( ) EQ 'X'.
PERFORM process_dom USING l_document.
ENDIF.
*& Form get_xml_table
FORM get_xml_table CHANGING l_xml_table_size TYPE i
l_xml_table TYPE STANDARD TABLE.
* Local variable declaration
DATA: l_len TYPE i,
l_len2 TYPE i,
l_tab TYPE tsfixml,
l_content TYPE string,
l_str1 TYPE string,
c_conv TYPE REF TO cl_abap_conv_in_ce,
l_itab TYPE TABLE OF string.
l_filename = pa_file.
* upload a file from the client's workstation
CALL METHOD cl_gui_frontend_services=>gui_upload
EXPORTING
filename = l_filename
filetype = 'BIN'
IMPORTING
filelength = l_xml_table_size
CHANGING
data_tab = l_xml_table
EXCEPTIONS
OTHERS = 19.
IF sy-subrc <> 0.
MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
ENDIF.
* Writing the XML document to the screen
CLEAR l_str1.
LOOP AT l_xml_table INTO l_xml_line.
c_conv = cl_abap_conv_in_ce=>create( input = l_xml_line-data replacement = space ).
c_conv->read( IMPORTING data = l_content len = l_len ).
CONCATENATE l_str1 l_content INTO l_str1.
ENDLOOP.
l_str1 = l_str1+0(l_xml_table_size).
SPLIT l_str1 AT cl_abap_char_utilities=>cr_lf INTO TABLE l_itab.
WRITE: /.
WRITE: /' XML File'.
WRITE: /.
LOOP AT l_itab INTO l_str1.
REPLACE ALL OCCURRENCES OF cl_abap_char_utilities=>horizontal_tab IN
l_str1 WITH space.
WRITE: / l_str1.
ENDLOOP.
WRITE: /.
ENDFORM. "get_xml_table
*& Form process_dom
FORM process_dom USING document TYPE REF TO if_ixml_document.
DATA: node TYPE REF TO if_ixml_node,
iterator TYPE REF TO if_ixml_node_iterator,
nodemap TYPE REF TO if_ixml_named_node_map,
attr TYPE REF TO if_ixml_node,
name TYPE string,
prefix TYPE string,
value TYPE string,
indent TYPE i,
count TYPE i,
index TYPE i.
node ?= document.
CHECK NOT node IS INITIAL.
ULINE.
WRITE: /.
WRITE: /' DOM-TREE'.
WRITE: /.
IF node IS INITIAL. EXIT. ENDIF.
* create a node iterator
iterator = node->create_iterator( ).
* get current node
node = iterator->get_next( ).
* loop over all nodes
WHILE NOT node IS INITIAL.
indent = node->get_height( ) * 2.
indent = indent + 20.
CASE node->get_type( ).
WHEN if_ixml_node=>co_node_element.
* element node
name = node->get_name( ).
nodemap = node->get_attributes( ).
WRITE: / 'ELEMENT :'.
WRITE: AT indent name COLOR COL_POSITIVE INVERSE.
IF NOT nodemap IS INITIAL.
* attributes
count = nodemap->get_length( ).
DO count TIMES.
index = sy-index - 1.
attr = nodemap->get_item( index ).
name = attr->get_name( ).
prefix = attr->get_namespace_prefix( ).
value = attr->get_value( ).
WRITE: / 'ATTRIBUTE:'.
WRITE: AT indent name COLOR COL_HEADING INVERSE, '=',
value COLOR COL_TOTAL INVERSE.
ENDDO.
ENDIF.
WHEN if_ixml_node=>co_node_text OR
if_ixml_node=>co_node_cdata_section.
* text node
value = node->get_value( ).
WRITE: / 'VALUE :'.
WRITE: AT indent value COLOR COL_GROUP INVERSE.
ENDCASE.
* advance to next node
node = iterator->get_next( ).
ENDWHILE.
ENDFORM. "process_dom
reward points if it is use fulll ....
Girish -
How Can i use the key file Generated by RSACryptoServiceProvider to encrypt with php?
I need to be able to encrypt data in PHP using a public key generate by .NET(RSACryptoServiceProvider). I will then decrypt the data later in C# using the private key.
Code Snippet
<RSAKeyValue><Modulus>xU5JyaPNDKXI/h/uo5Vk89wZSz3zsB1+c+1IMYIQa+mCmuRCRPuoBI7ODSV2ndP6grfhdrWEzhpZtkI3SThbBh/3t+tfZ2PF8Iyv9ECN07V64nPCiJGhAnfENE+J9UD9Kw5czXHgZcBbpM5N0VfXmLSleaS65DDoNPtoStVy7ss=</Modulus><Exponent>AQAB</Exponent><P>4ScAjVrPZii/6lICAP2yDQiNEmNL74+5AcxNVDI0IombfDPIygrqEWmuDu0pngApQak7XnEnLbaDChILFiHPZQ==</P><Q>4FaYlse+cjrlPD/jk+GsTJeuP7yuQx8ztjVnQWVh6GKQP+uk1dAl6kcZOfLNR6LWwE3CSygt8PthTEw96Zbabw==</Q><DP>XvXtNLE9UjATqYeHEtXtV7Pok/3PVC3A8PIzFzTJaluxeXP51sU9rbRt1hvO9rXIsMnooU+GH7Cfmgq8JEyERQ==</DP><DQ>HXkC/vwq9xLpvuqd2XXSjxV2XQVK16Knxo5pjFvnawJX9S3eMADymj7Q/534firUj9snZXxX3MsJ015I3AFnnQ==</DQ><InverseQ>AM0fVCE3n2FKf2zb3CcDEge1Ko35VvMEL+LXgR87QwO2HScZSuLevGLi2SSAkB1vu8RSNzB028SZReeOZWnq4Q==</InverseQ><D>fI+GKdRNOTTYhQZnw8Im74T+OvArjf2wvUMJlqfD8jyDBYIhDCfL1MTK9KW4Er+moSuxHR5Pb0ZXaKa4/HKlk0aJ1jB2C+jg7zTSuPRNuS16BpVHaJYsQurCwZwElXMum+GxeXK/h3wXWq5HwebjqZr0aLUMZKRcweDPRoVFiRE=</D></RSAKeyValue>
As you see this code snippet is a xml format private key. at .net platform,which can use encrypt or dencrypt.
i have try the Extension Crypt RSA ( http://pear.php.net/reference/Crypt_RSA-1.0.0/elementindex_Crypt_RSA.html ) to help me encrypt data by php.but it haven't return a currect result. the data encrypted by php cann't dencrypt by c#.
does the RSA algorithm provider by Crypt_RSA can give a stand result as c#?
BTW :i just use the xmlkeystring like this.
Code Snippet
<?php
require_once("Crypt/RSA.php");
require_once("includes/Utils.class.php");
$public_key_string = simplexml_load_string("<RSAKeyValue><Modulus>xU5JyaPNDKXI/h/uo5Vk89wZSz3zsB1+c+1IMYIQa+mCmuRCRPuoBI7ODSV2ndP6grfhdrWEzhpZtkI3SThbBh/3t+tfZ2PF8Iyv9ECN07V64nPCiJGhAnfENE+J9UD9Kw5czXHgZcBbpM5N0VfXmLSleaS65DDoNPtoStVy7ss=</Modulus><Exponent>AQAB</Exponent><P>4ScAjVrPZii/6lICAP2yDQiNEmNL74+5AcxNVDI0IombfDPIygrqEWmuDu0pngApQak7XnEnLbaDChILFiHPZQ==</P><Q>4FaYlse+cjrlPD/jk+GsTJeuP7yuQx8ztjVnQWVh6GKQP+uk1dAl6kcZOfLNR6LWwE3CSygt8PthTEw96Zbabw==</Q><DP>XvXtNLE9UjATqYeHEtXtV7Pok/3PVC3A8PIzFzTJaluxeXP51sU9rbRt1hvO9rXIsMnooU+GH7Cfmgq8JEyERQ==</DP><DQ>HXkC/vwq9xLpvuqd2XXSjxV2XQVK16Knxo5pjFvnawJX9S3eMADymj7Q/534firUj9snZXxX3MsJ015I3AFnnQ==</DQ><InverseQ>AM0fVCE3n2FKf2zb3CcDEge1Ko35VvMEL+LXgR87QwO2HScZSuLevGLi2SSAkB1vu8RSNzB028SZReeOZWnq4Q==</InverseQ><D>fI+GKdRNOTTYhQZnw8Im74T+OvArjf2wvUMJlqfD8jyDBYIhDCfL1MTK9KW4Er+moSuxHR5Pb0ZXaKa4/HKlk0aJ1jB2C+jg7zTSuPRNuS16BpVHaJYsQurCwZwElXMum+GxeXK/h3wXWq5HwebjqZr0aLUMZKRcweDPRoVFiRE=</D></RSAKeyValue>");
$key =new Crypt_RSA_Key(base64_decode($public_key_string->Modulus),base64_decode($public_key_string->Exponent),"public");
echo "<pre>";
print_r($key);
echo "</pre>";
$rsa_obj = new Crypt_RSA();
//try encrypt data
echo "encrypted result is:<br/>".$rsa_obj->encrypt("this is a smple text.",$key)
?>
but the encrypted data cann't decrypt by c#?where is the problem?what should i do with php codes?thank you for your reply, i also found this article by google.but this does not meet scene, thank you all the same.
i have already solved the problem now,i'd like to post the Solution .infact it's so easy to use rsakey file generated by .net .
-------------rsa.class.php-------------------
Code Snippet
<?php
* Some constants
define("BCCOMP_LARGER", 1);
class RSA
* PHP implementation of the RSA algorithm
* (C) Copyright 2004 Edsko de Vries, Ireland
* Licensed under the GNU Public License (GPL)
* This implementation has been verified against [3]
* (tested Java/PHP interoperability).
* References:
* [1] "Applied Cryptography", Bruce Schneier, John Wiley & Sons, 1996
* [2] "Prime Number Hide-and-Seek", Brian Raiter, Muppetlabs (online)
* [3] "The Bouncy Castle Crypto Package", Legion of the Bouncy Castle,
* (open source cryptography library for Java, online)
* [4] "PKCS #1: RSA Encryption Standard", RSA Laboratories Technical Note,
* version 1.5, revised November 1, 1993
* Functions that are meant to be used by the user of this PHP module.
* Notes:
* - $key and $modulus should be numbers in (decimal) string format
* - $message is expected to be binary data
* - $keylength should be a multiple of 8, and should be in bits
* - For rsa_encrypt/rsa_sign, the length of $message should not exceed
* ($keylength / 8) - 11 (as mandated by [4]).
* - rsa_encrypt and rsa_sign will automatically add padding to the message.
* For rsa_encrypt, this padding will consist of random values; for rsa_sign,
* padding will consist of the appropriate number of 0xFF values (see [4])
* - rsa_decrypt and rsa_verify will automatically remove message padding.
* - Blocks for decoding (rsa_decrypt, rsa_verify) should be exactly
* ($keylength / 8) bytes long.
* - rsa_encrypt and rsa_verify expect a public key; rsa_decrypt and rsa_sign
* expect a private key.
* rsa encrypt data
* @param binary string $message
* @param unknown_type $public_key
* @param numbers $modulus
* @param numbers $keylength
* @return binary data
function rsa_encrypt($message, $public_key, $modulus, $keylength)
$padded = RSA::add_PKCS1_padding($message, true, $keylength / 8);
$number = RSA::binary_to_number($padded);
$encrypted = RSA::pow_mod($number, $public_key, $modulus);
$result = RSA::number_to_binary($encrypted, $keylength / 8);
return $result;
function rsa_decrypt($message, $private_key, $modulus, $keylength)
$number = RSA::binary_to_number($message);
$decrypted = RSA::pow_mod($number, $private_key, $modulus);
$result = RSA::number_to_binary($decrypted, $keylength / 8);
return RSA::remove_PKCS1_padding($result, $keylength / 8);
function rsa_sign($message, $private_key, $modulus, $keylength)
$padded = RSA::add_PKCS1_padding($message, false, $keylength / 8);
$number = RSA::binary_to_number($padded);
$signed = RSA::pow_mod($number, $private_key, $modulus);
$result = RSA::number_to_binary($signed, $keylength / 8);
return $result;
function rsa_verify($message, $public_key, $modulus, $keylength)
return RSA::rsa_decrypt($message, $public_key, $modulus, $keylength);
function rsa_kyp_verify($message, $public_key, $modulus, $keylength)
$number = RSA::binary_to_number($message);
$decrypted = RSA::pow_mod($number, $public_key, $modulus);
$result = RSA::number_to_binary($decrypted, $keylength / 8);
return RSA::remove_KYP_padding($result, $keylength / 8);
* The actual implementation.
* Requires BCMath support in PHP (compile with --enable-bcmath)
// Calculate (p ^ q) mod r
// We need some trickery to [2]:
// (a) Avoid calculating (p ^ q) before (p ^ q) mod r, because for typical RSA
// applications, (p ^ q) is going to be _WAY_ too large.
// (I mean, __WAY__ too large - won't fit in your computer's memory.)
// (b) Still be reasonably efficient.
// We assume p, q and r are all positive, and that r is non-zero.
// Note that the more simple algorithm of multiplying $p by itself $q times, and
// applying "mod $r" at every step is also valid, but is O($q), whereas this
// algorithm is O(log $q). Big difference.
// As far as I can see, the algorithm I use is optimal; there is no redundancy
// in the calculation of the partial results.
function pow_mod($p, $q, $r)
// Extract powers of 2 from $q
$factors = array();
$div = $q;
$power_of_two = 0;
while(bccomp($div, "0") == BCCOMP_LARGER)
$rem = bcmod($div, 2);
$div = bcdiv($div, 2);
if($rem) array_push($factors, $power_of_two);
$power_of_two++;
// Calculate partial results for each factor, using each partial result as a
// starting point for the next. This depends of the factors of two being
// generated in increasing order.
$partial_results = array();
$part_res = $p;
$idx = 0;
foreach($factors as $factor)
while($idx < $factor)
$part_res = bcpow($part_res, "2");
$part_res = bcmod($part_res, $r);
$idx++;
array_push($partial_results, $part_res);
// Calculate final result
$result = "1";
foreach($partial_results as $part_res)
$result = bcmul($result, $part_res);
$result = bcmod($result, $r);
return $result;
// Function to add padding to a decrypted string
// We need to know if this is a private or a public key operation [4]
function add_PKCS1_padding($data, $isPublicKey, $blocksize)
$pad_length = $blocksize - 3 - strlen($data);
if($isPublicKey)
$block_type = "\x02";
$padding = "";
for($i = 0; $i < $pad_length; $i++)
$rnd = mt_rand(1, 255);
$padding .= chr($rnd);
else
$block_type = "\x01";
$padding = str_repeat("\xFF", $pad_length);
return "\x00" . $block_type . $padding . "\x00" . $data;
// Remove padding from a decrypted string
// See [4] for more details.
function remove_PKCS1_padding($data, $blocksize)
assert(strlen($data) == $blocksize);
$data = substr($data, 1);
// We cannot deal with block type 0
if($data{0} == '\0')
die("Block type 0 not implemented.");
// Then the block type must be 1 or 2
assert(($data{0} == "\x01") || ($data{0} == "\x02"));
// Remove the padding
$offset = strpos($data, "\0", 1);
return substr($data, $offset + 1);
// Remove "kyp" padding
// (Non standard)
function remove_KYP_padding($data, $blocksize)
assert(strlen($data) == $blocksize);
$offset = strpos($data, "\0");
return substr($data, 0, $offset);
// Convert binary data to a decimal number
function binary_to_number($data)
$base = "256";
$radix = "1";
$result = "0";
for($i = strlen($data) - 1; $i >= 0; $i--)
$digit = ord($data{$i});
$part_res = bcmul($digit, $radix);
$result = bcadd($result, $part_res);
$radix = bcmul($radix, $base);
return $result;
// Convert a number back into binary form
function number_to_binary($number, $blocksize)
$base = "256";
$result = "";
$div = $number;
while($div > 0)
$mod = bcmod($div, $base);
$div = bcdiv($div, $base);
$result = chr($mod) . $result;
return str_pad($result, $blocksize, "\x00", STR_PAD_LEFT);
?>
-------------RSAProcessor.class.php------------------------
Code Snippet
<?php
require_once("rsa.class.php");
class RSAProcessor
private $public_key = null;
private $private_key = null;
private $modulus = null;
private $key_length = "1024";
public function __construct($xmlRsakey=null,$type=null)
$xmlObj = null;
if($xmlRsakey==null)
$xmlObj = simplexml_load_file("xmlfile/RSAKey.xml");
elseif($type==RSAKeyType::XMLFile)
$xmlObj = simplexml_load_file($xmlRsakey);
else
$xmlObj = simplexml_load_string($xmlRsakey);
$this->modulus = RSA::binary_to_number(base64_decode($xmlObj->Modulus));
$this->public_key = RSA::binary_to_number(base64_decode($xmlObj->Exponent));
$this->key_length = strlen(base64_decode($xmlObj->Modulus))*8;
* get public key
* @return string public key
public function getPublicKey()
//return base64_encode(RSA::number_to_binary($this->public_key,($this->key_length)/8));
return $this->public_key;
public function getPrivateKey()
//return base64_encode(RSA::number_to_binary($this->private_key,($this->key_length)/8));
return $this->private_key;
public function getKeyLength()
return $this->key_length;
public function getModulus()
return $this->modulus;
* encrypt data
* @param string $data
* @return base64 encoded binary string
public function encrypt($data)
return base64_encode(RSA::rsa_encrypt($data,$this->public_key,$this->modulus,$this->key_length));
public function dencrypt($data)
return RSA::rsa_decrypt($data,$this->private_key,$this->modulus,$this->key_length);
public function sign($data)
return RSA::rsa_sign($data,$this->private_key,$this->modulus,$this->key_length);
public function verify($data)
return RSA::rsa_verify($data,$this->public_key,$this->modulus,$this->key_length);
class RSAKeyType
const XMLFile = 0;
const XMLString = 1;
?>
-------------- encrypt data with public key-----------------
Code Snippet
<?php
require_once("RSAProcessor.class.php");
$processor = new RSAProcessor
("<RSAKeyValue><Modulus>m6ljoeWhmnd0oRnsVEH5iNw3B8+vKVu7v7CVfMyf6bnKEzHa62TRmT/baJiSevoI/vgm2ph/s1JrQQTaGiErHicigwSC
Aw7+i05WFbnz7tOyiiJJVMfsdd+v7Xan9Hiud05FzxoMbM8vpiMHPEIDbGJ1MiXyupTVkz2WcMHyBoJ4S189opktZ43pviUhy0PeuWkyoU7zR54akPmK
Yg+z5Zr1r7K8lUZ1a3TThfJGxTQR/uZMtZz/q8QF0AANVQ/eyahTv9icBzBoDuncS0Y5l3vqogW1C/ltJvhJpvSn/OgjbRjuixCAptOUmRd13sDWU95/
x0bMq+Lg68lj2OjJ1Q==</Modulus><Exponent>AQAB</Exponent><P>zfvdBsMLlmo+4PAUYLgSV2xyyVa7ZqFjkJaAE4EbYuH24EoZjrzeiJR++D
FUT/GUhjfZ5eZ/5e29dXwk0sKUw6nHzBdBtOPp5fr4t5SKLEcWY+J+zLUSOlhG9NUkohFf6+Miy2Y7BLpXVrcl6UwXV0ak8KkTPB2l/aIMwYj5dgc=</
P><Q>wXV0sA3nDzoSDQA/4QSu/WIlBhkA3jZ7K7G9Z9rpP1A0vH+bZeyCIyo52u8ahGuYbubaizF1XMp+Xv3Mh2KmRbt7+UptwEwbFAUiiad2a312mqm
j7IJd7gRjGkyzKEm+6fpNeY3NFLNVNhccBqzhNkRoM22xnvQcImD10XVAakM=</Q><DP>wd1HdCLEWCfc0DYE59a2pINUMXyo2foRTDbpifHcRZ+ojAY
Rsc6+nsssCQnccXVMNVqBgSgEvfGYe+eAfMBX5SN5APPuioJrVGF2DsoFlZC+WPoGH0JYSoNlHO8yEDrMDaXzzH2GFHgQ1XOAged0nFbHzB1FFjJNVL5
cxRXWu6c=</DP><DQ>QDKuCk5SwubOXqoaiJ15RHRxPNjHRPZnYVSWOgSXKn9/QJ5H/0bA2NKGaHS4JAFgkEzjcRV0kNpRnUwztymxa6qPtWZRjWK0Ca
y6jVuZHIqB9UkeMLoCWZ3zFSMmwNPYGuUJGLFJwPjR6iU5E64C/nMs8QQR0WHIhFAQwvVZ7uk=</DQ><InverseQ>JckMSlJR10VZdnp83VPjrZ/Z+63
CGu3tWHm7f4DJ8IwjJWr8FlCpbSwiP6a4e9Upv6bUn/tOj2gY6MMq5G5yTKm2SCRvpUKRu4NCmWAt7vlFv0Z6pkXlTOpzvVjv3v16+dIZOA5Zn+v7+r1
xbdYdH20KRAbiBO3MfQP7s+VJJvM=</InverseQ><D>W1xrBr2hQOj1wgxWAgoK7IHbprEFrK+TnWmGA46SGPsbmHJ9fAVbY6fwHg7Wgmk4WHXLUCeLY
/Nu0eWIISfwh60Oe3ls2WC2k4qxyeSvQDBuLNb81U7WAUT9m9E1uK4QMCP3oxs1ybM80zTh7UMNgVK0WG+fbFUomVffcWTTqW+Fu12PEIO+UR/85oq+x
qVlTzYAEzt1OE9IhkYiRzi99ePXeH2gFltzJ/fb/7jLsDTkhM2eiYTGyOTZmBnen6c6a8b9LFTY4Bc0bGpk5ezHkub6F8p2ZgL/JgIOJMyRZICjDjs+9
k9PTmMTFsCF6xzHY15Fg25xIDYzIyx1rrRUjQ==</D></RSAKeyValue>",RSAKeyType::XMLString);
$rs = $processor->encrypt("Hello,It's Works.");
echo $rs;
?>
with the front codes.you can easy to encrypt data by public key generate by .net programe. -
Issue with generation of document/literal type WSDL using Axis
Hi All,
I am trying to convert some Java code into WSDL using Axis 1.2 framework. I used Document/Literal style for binding.
One of the methods in my Java code returns an array. This array is described in Axis generated WSDL as follows:
<complexType name="ArrayOfThings">
<complexContent>
<restriction base="soapenc:Array">
<attribute ref="soapenc:arrayType" wsdl:arrayType="impl:Things[]"/>
</restriction>
</complexContent>
</complexType>
But the end user(client for the web service I am hosting) says " .NET won't allow him to consume my webservice (or generate the proper reference classes) for types that derive from encoded types".
So my question is "Would it be possible to change the webservice so that it doesn’t use that(soapenc) implementation of the array?"
The end user is expecting something more like this:
<s:complexType name="ArrayOfThings">
<s:sequence>
<s:element minOccurs="0" maxOccurs="unbounded" name="Things" nillable="true" type="tns:Things" />
</s:sequence>
</s:complexType>
I am new to Web Services. So any help or guidance would be greatly appreciated.
Thanks,
Scott.Hi Dragana,
We definitely support the ability to call a web service that exposes two operations (document/literal or not).
Glancing through your WSDL, it looks good.
Could you please try to tunnel the second request and see 1) what data is sent to the service and 2) what data is returned by the service?
Can you please email us a reproduceable case so that we can help troubleshoot in parallel?
Thank you,
Edwin
[email protected]
please rename .zip to .zap -
Re: Problem with transferring of data to non sap by using FTP funtion modul
Hi all,
I am doing program of creating excise invoice details and those are transfering to non sap.and I am successfully passing text file to that non sap by using FTP connection.
like FTP_CONNECT
FTP_COMMAND
FTP_R3_TO_CLIENT
FTP_DISCONNECT
But text file details are coming like this
means even line items are all displaying in one row.means continously all line items are coming just like this.
0001000264,070914,,,1000,Steel (pune) Plant,
Retail Outlet 1,0001000265,070914,,,1000,Steel (hyderabad) Plant,Retail Outlet 1
Actually here problem is text file data is continously coming with ','
means actually those values has to come as
0001000264,070914,,,1000,ESSAR Steel (Hazira) Plant,Retail Outlet 1
0001000264,070914,,,1000,ESSAR Steel (Hazira) Plant,Retail Outlet 1
How to split those records when sending the text file.
This is very big issue.I am unable to complete this issue.
Please if any one knows the solution please guide me.
please help me.
Thanks & Regards,
J.GoudHi all,
I am doing program of creating excise invoice details and those are transfering to non sap.and I am successfully passing text file to that non sap by using FTP connection.
like FTP_CONNECT
FTP_COMMAND
FTP_R3_TO_CLIENT
FTP_DISCONNECT
But text file details are coming like this
means even line items are all displaying in one row.means continously all line items are coming just like this.
0001000264,070914,,,1000,Steel (pune) Plant,
Retail Outlet 1,0001000265,070914,,,1000,Steel (hyderabad) Plant,Retail Outlet 1
Actually here problem is text file data is continously coming with ','
means actually those values has to come as
0001000264,070914,,,1000,ESSAR Steel (Hazira) Plant,Retail Outlet 1
0001000264,070914,,,1000,ESSAR Steel (Hazira) Plant,Retail Outlet 1
How to split those records when sending the text file.
This is very big issue.I am unable to complete this issue.
Please if any one knows the solution please guide me.
please help me.
Thanks & Regards,
J.Goud -
SAP CRM integration with SAP R/3 using Xi
Hi All,
I am planning to us SAP XI to integrate PEOPLESOFT SYTEM TO SAP CRM .
This is the Scenario
File adaptor xif adaptor
Peoplesoft-----> XI ---> sap crm.
1)Is this the best practice to integrate PEOPLESOFT SYTEM and SAP CRM using XI?
2) Please comment how and with best option to integrate and also comment on cost factor ?.
Please Help me.....
Thanks and Regards,
chandra.kotha<i>1)Is this the best practice to integrate PEOPLESOFT SYTEM and SAP CRM using XI?</i>
It is not, but it is cost effective.
<i>2) Please comment how and with best option to integrate and also comment on cost factor ?.</i>
iWay has an PeopleSoft adapter, but you need to buy the license (not sure how much it costs, some adapters were charged based on the data volume and some were charged straight per adapter depends how you negotiate).
https://service.sap.com/~sapidb/011000358700009396312004E/index.htm#PeopleSoft
regards
Shravan -
Hello,
has anyone experience with the Integration of a 3rd Party System with SAP C4C using SAP Netweaver Process Integration?
Is this a process of days, weeks or months?
Any documentation on this?
I am thankful for every Input!
BR, RomanRoman,
Please read through the integration guides available on the SAP service marketplace as they address this specific topic in great detail.
http://service.sap.com/cloud4customer
The time duration of the project depends on the business process complexity being resolved and the level of integration desired between the different enterprise solutions in the landscape.
Thank you. -
Problem-Starting InDesign Server for use with CORBA / Java and IOR file not generated
I'm trying to start Indesign Server cs3 for use with Corba, as per the document the server should generate the start-up message like this..
InDesignServer -iorfile c:\ior.txt -pluginpath Server\Corba
[server] Writing IOR to ... and it should generate the IOR file
but I'm getting the usual start-up message and the IOR file is not generated, I hope IOR file is required for Java component interaction with IDS, kindly help me to solve this.
Thanks in advance.[From Susan Doan, who is having trouble posting to the forum today}:
It looks like the example command line in the "Intro to InDesign Server" pdf is using curly quotes instead of straight quotes. If you copy the command from the pdf and paste it in your command shell, it won't work because of the curly quotes.
You can run the command without the quotes as Rich has said, but, as will all command lines, if your path contains a space, you will need to put quotes (straight ones!) around the path.
Thanks,
Ole
Maybe you are looking for
-
Power Mac G4 - corrupted disk problem?
The G4 will turn on, but I unable to log in. Tried rebooting. Lost Disk 1 and 2. Neighbor's friend repairs Macs and he suggested that I purchase Tiger and new hard drive. I purchased Tiger, but not a new hard drive yet (don' know what to buy!) Insert
-
Flash textbox embedded in Director
This has been a persistent problem since 2006. The ibeam cursor in Flash textbox, when used in Director disappears at its own will. End-users of applications get really frustrated as they get lost in the dark. I truly believe the best multimedia appl
-
Nokia X2 - Incoming MMS is too small ( 2,8 kb ) !
i tried everything. New SIM card, i did update 2 times phone software. I did send from 3 different phones pictures and incoming to my phone is still the same. Size between 2 and 4 kb. Its so small that its even not possible to see whats on picture. M
-
MS word It prints one file for each section of the document
With MS word (2004 and 2008)It prints one file for each section of the document. somebody can help me with that????
-
I can't put songs on my iPod Nano.
I get these messages: http://img139.imageshack.us/img139/423/ipoduo0.jpg And a frequent, "The required folder can not be found." (or something along the lines of that) Help!