| /* |
| * Copyright 2001-2004 The Apache Software Foundation. |
| * |
| * Licensed under the Apache License, Version 2.0 (the "License"); |
| * you may not use this file except in compliance with the License. |
| * You may obtain a copy of the License at |
| * |
| * http://www.apache.org/licenses/LICENSE-2.0 |
| * |
| * Unless required by applicable law or agreed to in writing, software |
| * distributed under the License is distributed on an "AS IS" BASIS, |
| * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
| * See the License for the specific language governing permissions and |
| * limitations under the License. |
| */ |
| |
| package samples.swa; |
| |
| import javax.activation.DataHandler; |
| import javax.activation.FileDataSource; |
| import javax.mail.internet.MimeBodyPart; |
| import javax.mail.internet.MimeMultipart; |
| |
| /** |
| * Class Tester |
| * |
| * @version %I%, %G% |
| */ |
| public class Tester { |
| |
| /** Field HEADER_CONTENT_TYPE */ |
| public static final String HEADER_CONTENT_TYPE = "Content-Type"; |
| |
| /** Field HEADER_CONTENT_TRANSFER_ENCODING */ |
| public static final String HEADER_CONTENT_TRANSFER_ENCODING = |
| "Content-Transfer-Encoding"; |
| |
| /** Field address */ |
| private static final java.lang.String address = |
| "http://localhost:8080/axis/services/SwaHttp"; |
| |
| /** |
| * Method main |
| * |
| * @param args |
| * @throws Exception |
| */ |
| public static void main(String[] args) throws Exception { |
| |
| /* |
| * Start to prepare service call. Once this is done, several |
| * calls can be made on the port (see below) |
| * |
| * Fist: get the service locator. This implements the functionality |
| * to get a client stub (aka port). |
| */ |
| SwaServiceLocator service = new SwaServiceLocator(); |
| |
| /* |
| * Here we use an Axis specific call that allows to override the |
| * port address (service endpoint address) with an own URL. Comes |
| * in handy for testing. |
| */ |
| java.net.URL endpoint; |
| try { |
| endpoint = new java.net.URL(address); |
| } catch (java.net.MalformedURLException e) { |
| throw new javax.xml.rpc.ServiceException(e); |
| } |
| |
| SwaPort port = (SwaPort) service.getSwaHttp(endpoint); |
| |
| /* |
| * At this point all preparations are done. Using the port we can |
| * now perform as many calls as necessary. |
| */ |
| |
| /* |
| * Prepare the Multipart attachment. It consists of several data files. The |
| * multipart container is of type "multipart/mixed" |
| */ |
| MimeMultipart mpRoot = new MimeMultipart(); |
| System.out.println("MimeMultipart content: " + mpRoot.getContentType()); |
| DataHandler dh = new DataHandler(new FileDataSource("duke.gif")); |
| addBodyPart(mpRoot, dh); |
| dh = new DataHandler(new FileDataSource("pivots.jpg")); |
| addBodyPart(mpRoot, dh); |
| // perform call |
| port.swaSend("AppName", mpRoot); |
| } |
| |
| /** |
| * Method addBodyPart |
| * |
| * @param mp |
| * @param dh |
| */ |
| private static void addBodyPart(MimeMultipart mp, DataHandler dh) { |
| MimeBodyPart messageBodyPart = new MimeBodyPart(); |
| try { |
| messageBodyPart.setDataHandler(dh); |
| String contentType = dh.getContentType(); |
| if ((contentType == null) || (contentType.trim().length() == 0)) { |
| contentType = "application/octet-stream"; |
| } |
| System.out.println("Content type: " + contentType); |
| messageBodyPart.setHeader(HEADER_CONTENT_TYPE, contentType); |
| messageBodyPart.setHeader( |
| HEADER_CONTENT_TRANSFER_ENCODING, |
| "binary"); // Safe and fastest for anything other than mail |
| mp.addBodyPart(messageBodyPart); |
| } catch (javax.mail.MessagingException e) { |
| } |
| } |
| } |