XML And JaxB and DATA

http://www.onjava.com/pub/a/onjava/2004/12/15/jaxb.html

Main.java

import java.io.ByteArrayOutputStream;
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;

import javax.xml.soap.SOAPException;
import javax.xml.soap.SOAPMessage;
import javax.xml.ws.handler.Handler;
import javax.xml.ws.handler.HandlerResolver;
import javax.xml.ws.handler.PortInfo;

import com.cdyne.ws.weatherws.ArrayOfForecast;
import com.cdyne.ws.weatherws.Forecast;
import com.cdyne.ws.weatherws.ForecastReturn;
import com.cdyne.ws.weatherws.Weather;
import com.cdyne.ws.weatherws.WeatherSoap;

public class ClimateWebService implements HandlerResolver {

public static void main(String[] args) {
Weather weather = new Weather();
HandlerResolver myHanlderResolver = new ClimateWebService();
weather.setHandlerResolver(myHanlderResolver);

WeatherSoap wsoap=weather.getWeatherSoap();
ForecastReturn forecastReturn = (ForecastReturn) wsoap.getCityForecastByZIP("19110");
ArrayOfForecast forecast = forecastReturn.getForecastResult();
System.out.println("City : " + (forecastReturn.getCity()));
System.out.println("State : " + (forecastReturn.getState()));
for (Forecast fore : forecast.getForecast()) {
System.out.println("Desc : " + fore.getDesciption());
System.out.println("ID : " + fore.getWeatherID());
System.out.println("Temp HIGH: " + fore.getTemperatures().getDaytimeHigh());
System.out.println("Temp LOW: " + fore.getTemperatures().getMorningLow());
}
}

@Override
public List<Handler> getHandlerChain(PortInfo arg0) {
List<Handler> handlerChain = new ArrayList<Handler>();
handlerChain.add(new MyHandler());
return handlerChain;
}


}


MyHandler.java

MyHandler

import java.io.IOException;
import java.util.Set;

import javax.xml.soap.SOAPException;
import javax.xml.soap.SOAPMessage;
import javax.xml.ws.handler.MessageContext;
import javax.xml.ws.handler.soap.SOAPHandler;
import javax.xml.ws.handler.soap.SOAPMessageContext;

public class MyHandler implements SOAPHandler<SOAPMessageContext> {

public boolean handleMessage(SOAPMessageContext smc) {

Boolean outboundProperty = (Boolean) smc
.get(MessageContext.MESSAGE_OUTBOUND_PROPERTY);

SOAPMessage message = smc.getMessage();

if (!outboundProperty.booleanValue()) {
System.out.print(" SOAP Request ");
} else {
System.out.print(" SOAP Respone ");
}

try {
message.writeTo(System.out);
} catch (SOAPException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
System.out.println("");

return outboundProperty;

}

public Set getHeaders() {
return null;
}

public boolean handleFault(SOAPMessageContext context) {
return true;
}

public void close(MessageContext context) {
}
}