cancel
Showing results for 
Search instead for 
Did you mean: 

Error 'Cannot download WSDL from......' 'Compilation fails...'

Former Member
0 Kudos

Hi,

I have created a web service for the function module 'CATS_READ_TIMESHEET_DATA' , I am trying to test the webservice in the WSADMIN transaction and the following error results:

<i>Cannot download WSDL from http://uswasdvp.xxxxxxx.com:8088/sap/bc/srt/rfc/sap/Z_READ_TIME_DATA?sap-client=030&wsdl=1.1&mode=sa... Compilation fails... /usr/sap/XPX/JC30/j2ee/cluster/server0/temp/webservices/prx/ws1182311569282/proxy/test/types/p1/Catsd.java:32: code too large private synchronized static void initFields() { ^ 1 error</i>

(Note - I put xxxxx in the above url to hide the original value)

We are able to see the WSDL by placing the name of the virtual interface in the browser along with the normal url, however are unable to test the webservice.

Any ideas are greatly appreciated.

Thanks,

Chaitanya

Accepted Solutions (0)

Answers (5)

Answers (5)

Former Member
0 Kudos

Thank you Anton and Chris, I think you both were very close to the answer.

Meanwhile, what i did was to look at the interface of the FM and i observed that structure E_CATSD has 503 fields and i copied the structure and kept the fields relevant to the business of the client. Put a wrapper RFC around the standard FM and placed the new structure as the tables parameter and created the webservice.

I was able to execute the webservice and it works now.

I will investigate further on working on the JAVA class and trying to perform the options you suggested.

Thank you all.

Former Member
0 Kudos

you're welcome.

great that you were able to find a workaround.

regards, anton

Former Member
0 Kudos

Good to know that you got it going Chaitanya. So reducing the number of fields helped. Either edit the source object or editing the generetaed Java proxy would work. But if you dont have permissions to change the source objects the latter would be a good idea. But since you hit the root, that should be the best solution.

Former Member
0 Kudos

Hi Chaitanya,

I believe the proxies are getting generated and the compilation is failing because of the reason mentioned by "Anton ".

When the java code exceeds 65k in a method, the compilation will fail. If you have forwarded it to the java guys they may fix the java code generation issue. But in the meanwhile I suggest a workaround for you.

The proxies seem to be getting generated. If you have access to the java proxy source, in the location where they are getting generated, open the file Catsd.java for edit.

Go to the static method initFields() method and remove some code from there and paste them in another newly created.

From wherever initFields() is being called call the new method too. I believe the method initFields is only initializing

some fields to their initial values.

I hope this helps.

Regards,

Chris

sbhutani1
Contributor
0 Kudos

Hi

I have also got the similar problem, what i did is i have checked my url and found that it was not correct. You can check your host and port name whether it is correct or not. It seems that you are using 8088, try to use 8000 and also first try to open http://<host>:<j2ee port>/wsnavigator and if successfully opened then use the same host and port to open your wsdl. I am sure it will solve your problem.

Regards

Sumit Bhutani

Former Member
0 Kudos

wow, this is a very interesting problem.

it's been discussed elsewhere, always in connection with generated java code, where the compiled code- bytecode - exceeds a certain limit of 65K per method.

E.g. see <a href="http://www.velocityreviews.com/forums/t274120-code-to-large-for-machinegenerated-code.html">this</a>.

There seems to be something very special about the WSDL, which leads to generated java code which in turn results in a large classfile.

I suggest to post this to the Java forums and have the WSDL and generated java code ready for the guys over there to inspect. I guess Java gurus will have great joy to solve this riddle.

It would be nice if you came back later and told us of the outcome.

Regards,

anton

Former Member
0 Kudos

Hi Chaitanya,

did you try to create a diff webservice from the same function module again?

Try to do that and check if you are getting the same problem.

Regards

Pushkar

Former Member
0 Kudos

Hi,

I have tried creating a new webservice for the same FM and faced the same issue.