Hi Lee, Thank you for the detailed explanation. This will help me a great deal.
Regards, Srini ----- Original Message ---- From: Lee Meador <[EMAIL PROTECTED]> To: [email protected] Sent: Thursday, September 20, 2007 12:43:16 PM Subject: Re: [xfire-user] Consuming services from different application Srini, Lets say your code is in package com.srini.myapp and below. There will be a folder somewhere that contains the 'com' folder which contains the 'srini' folder and so forth. Since you are using Eclipse, this folder (the one containing 'com') will be one of the source folders you configure in the project properties. You choose "java classpath" in the list at the left of the properties box and then select the leftmost tab to configure the sources. Now, lets futher say your generated code is in packages below com.ibm.webservice. You have two choices: 1) Put the generated code in the same folder space as your own source. That means that you end up with both 'srini' and 'ibm' folders in the 'com' folder mentioned in the paragraph above. Under the 'ibm' folder there is a 'webservice' folder and all the generated source is below that. 2) Another way to do it works pretty well. You put a 'src' folder in the root of your Eclipse project. The 'com.srini.myapp' source code goes under 'src' and you configure (as described above) Eclipse so that 'src' is a source folder. Then you make a 'generated-src' folder in the root of the same Eclipse project (next to the 'src' folder) and put all the generated code in it. That means 'com' is under 'generated-src' and 'ibm' is under 'com' and so forth with the .java files in this source tree. Then you configure Eclipse so that 'generated-src' is an additional source folder. With this method, there are two source folders. After either of these, you will need to clean and rebuild the entire project. Eclipse has an option to do this under the 'project' menu. One way to check whether you got it all done right, after the rebuild, is to go to one of your own source java files that references one of the generated classes. Put the cursor on the name of the generated class or a method in that class and press F3. (You can hold down the Ctrl button and click on the same name or method with the mouse to do the same thing.) Eclipse should open the generated source file when you do this. One further thing I do helps avoid a common mistake. I go into the Windows file system and set all the generated source files to read-only. This makes it so that Eclipse lets you know if you are trying to change one of the generated files and save the change. Since you will probably regenerate now and then, its not a good idea to make any changes. (I actually set up the process that generates the classes so they are changed to read-write before generation and end up read-only afterwards. I do that in an ant script.) On 9/19/07, srini <[EMAIL PROTECTED]> wrote: Hi Lee, Great, thanks for reply. I appreciate it. When I tried to move generated code to same disk space I am writing I got an errors as generated packages are not recognized as they reflect service providers structure, from your reply it seems like I will have edit that code. I use Eclipse 3.2, what do you mean by 4th point (adding source code to project), do you mean create new classes and copy the code from generated files? Thanks in advance. Regards, Srinis ----- Original Message ---- From: Lee Meador < [EMAIL PROTECTED]> To: [email protected] Sent: Wednesday, September 19, 2007 2:57:16 PM Subject: Re: [xfire-user] Consuming services from different application The generated code has to be on the classpath when you compile the code that uses it. Some alternatives are to: 1) compile the generated code and put it into a jar, which goes on the compile and runtime classpaths. 2) move the generated code to the same disk folder space as the code you are writing. 3) add to the classpath to point to wherever the generated code is 4) if you are in an IDE like Eclipse or Netbeans (or whatever) there is a way to add the generated source code to your project 5) if you are using maven to do the build you want to use the xfire plugin to generate the code and add it to the build path\ Thanks. -- Lee On 9/18/07, srinivas kamisetty <[EMAIL PROTECTED]> wrote: Hello All, I am beginning to pick up on xfire. I created my first web service in ¡°Application A(Service providing application¡±) with java class User.java and implentation class UserImpl.java and was able to test it following Tomek's input with success, so far good. I feel like I am almost there. All my web service does is return a simple string that it gets. Now to the part of consuming the service. I have to pass this string from different ¡°Application B (Service consuming application)¡± . I generated code using xFire plugin in Application B that generated following classes. 1. User.java 2. UserImpl.java 3. UserClient.java 4. UserPortType.java 5. UserResponse.java 6. ObjectFactory.java 7. package-info.java Here is the problem, ok I downloaded all the above files to folder called " com.soa" in application B and to default package. All I need to do now is just pass a string to Application A and get it back. I want try something like 'User.getMeString ("Srini"); He is the first probelm, as soon as downloaded above file thru plugin , it downloaded with same package declarations as in Applcation A. But my client application B doesn't show any errors. I tried to use above classes in my action classes I get errors as my Application B doesn¡¯t recognize any of the above classes. My idea was to do something like following in my action class to import package where I have above classes. When I downloaded to com.soa, it created com.soa.com.cma.soa (the bold part is from Application A, do not why that happens) My plan is to do to import above package into my struts action class so I can do something like import com.soa.com.cma.soa.*; to get access to above classes. But I get error saying the package doesn¡¯t exist. So my questions are. How do I use generated classes in my consumer application (Application B) to consume and how can I access those classes. If anyone has sample code to pass a string to a service (of different application) and get it back and how to make generated classes available to consuming application I will appreciate it very much. As of now it seems like it is very easy to generate java classes from wsdl if you give url location but it seems like your consuming application doesn't recognize any of those as generated classes still have package declaration from service provider where as consuming app can't recognize those packages. Sorry for long text, I am new to xFire and web services. Hope it all make sense. Regards, Srini Looking for a deal? Find great prices on flights and hotels with Yahoo! FareChase. -- -- Lee Meador Sent from gmail. My real email address is lee AT leemeador.com Looking for a deal? Find great prices on flights and hotels with Yahoo! FareChase. -- -- Lee Meador Sent from gmail. My real email address is lee AT leemeador.com ____________________________________________________________________________________ Be a better Globetrotter. Get better travel answers from someone who knows. Yahoo! Answers - Check it out. http://answers.yahoo.com/dir/?link=list&sid=396545469
