Hi there,

I am having a question about the decision whether to use Axis or EJB3.0 
Annotations for Webservices.

Now my point is, that in one of my tests EJB has a really hard Speedproblem.

I am having the EpgDataService at the the end of this thread.

I made this public with EJB 3.0 annotations, as you can see in the code and 
with Axis through normal Axis Pojo beployment.

No i am calling the simple small method getBroadcasts() that simply returns the 
Broadcast beans which then have to be serialized to XML data for 
SOAP-Transportation.

Here is the Problem. Axis from the scratch with simply deploying this Class 
through the wsdd files takes nearly onle one second to respond to the Client.

EJB decides to take up to 20 Seconds for serializing the Broadcast beans. 
To desirialize them on the other side .Net needs an eye shut.

Both applications ran on the JBoss 4.0.4

Where could be the Problem? I'd be very astonished if this would really be to 
algorithmproblems with EJB 3.0. Am I missing somegthing important?

P.S.
It is not the Problem, that EJB perhaps more often runs the Static code due to 
the amount of the Classloaders. This is done quite fast and are no reason for 
the 20 Seconds delay that apear after a breakpoint putec in the called 
Webmethod.

Any Idea? Thanks,
                        Alexander


  | @Stateless
  | @WebService
  | public class EpgDataService implements BroadCastService {
  | 
  |     public static Document d;
  |     public static Set<BroadCastImpl> s = new HashSet<BroadCastImpl>();
  |     public static BroadCastImpl[] broadCasts = null;
  | 
  |     
  |     static {
  |             String name = "";
  |             String content = null;
  |             try{
  |                     DocumentBuilder builder = 
DocumentBuilderFactory.newInstance().newDocumentBuilder();
  |                     d = builder.parse("C:\\20060926_20060926_de_qy.xml");
  |                     
  |                     NodeList nl = d.getElementsByTagName("data"), nl2;
  |                     for (int i=0; i < nl.getLength(); i++){
  |                             Node n = nl.item(i);
  |                             Node n2 = null;
  |                             nl2 = n.getChildNodes();
  |                             int text;
  |                             BroadCastImpl b = new BroadCastImpl();
  |                             for (int j=0; j < nl2.getLength(); j++){
  |                                     n2 = nl2.item(j);
  |                                     text = n2.getNodeType();
  |                                     if (text == Node.ELEMENT_NODE && 
n2.getNodeName() != "data"){
  |                                             try{
  |                                                     content = 
n2.getTextContent();
  |                                                     name = n2.getNodeName();
  |                                                     if (name == "d0"){ 
b.setBroadCastId(Integer.valueOf(content));}
  |                                                     else if(name == 
"d1"){b.setTvShowId(Integer.valueOf(content));}
  |                                                     else if(name == 
"d2"){b.setChannelId(Integer.valueOf(content));}
  |                                                     else if(name == 
"d21"){b.setLongComment(content);}
  |                                                     else if(name == 
"d22"){b.setMiddleComment(content);}
  |                                                     else if(name == 
"d23"){b.setShortComment(content);}
  |                                                     else if(name == 
"d19"){b.setTitle(content);}
  |                                                     else if(name == 
"d20"){b.setSubTitle(content);}
  |                                             }catch (Exception e){
  |                                                     
System.out.println("Aufbereitung : " + e);
  |                                             }
  |                                     }
  |                             }
  |                             s.add(b);
  |                     }
  |                     broadCasts = new BroadCastImpl[s.size()];
  |                     s.toArray(broadCasts);
  |             }catch (ParserConfigurationException e){
  |                     System.out.println(e);
  |             }catch (IOException e){
  |                     System.out.println(e);
  |             }catch (SAXException e){
  |                     System.out.println(e);
  |             }
  |     }
  |     
  |     @WebMethod
  |     public synchronized BroadCast[] getBroadcasts(){
  |             return broadCasts;
  |     }
  | 
  |     @WebMethod
  |     public BroadCast[] getBroadcastsByChannelId(int channelId){
  |             BroadCastImpl[] a = null;
  |             Map keys = new TreeMap();
  |             XPath xp = XPathFactory.newInstance().newXPath();
  |             try{
  | //                  InputSource inputSource = new 
InputSource(Context.Path+"20060926_20060926_de_qy.xml");
  |                     DocumentBuilder builder = 
DocumentBuilderFactory.newInstance().newDocumentBuilder();
  |                     long vor = System.currentTimeMillis();
  |                     d = builder.parse("c:\\20060926_20060926_de_qy.xml");
  |                     long nach = System.currentTimeMillis();
  |                     long dauer = nach - vor;
  |                     System.out.println("Parsen: "+ dauer);
  |                     vor = System.currentTimeMillis();
  |                     NodeList nodes = (NodeList) 
xp.evaluate("/pack/data[d2="+channelId+"]", d, XPathConstants.NODESET);
  |                     nach = System.currentTimeMillis();
  |                     dauer = nach - vor;
  |                     System.out.println("Suche: "+ dauer);
  |                     a = new BroadCastImpl[nodes.getLength()];
  |                     Node n = null,firstChildNode = null, childNode = null;
  |                     for(int i=0; i < a.length;i++){
  |                             System.out.println("----------------------New 
Entry----------------------");
  |                             n = nodes.item(i);
  |                             firstChildNode = n.getFirstChild();
  |                             childNode = n.getFirstChild();
  |                             // Iteration über die Felder einer Sendung
  |                             while(childNode != null){
  |                                     if (childNode.getNodeType() != 
Node.TEXT_NODE){
  |                                             
//System.out.println(childNode.getNodeName()+": "+childNode.getTextContent());
  |                                             
keys.put(childNode.getNodeName(), childNode.getTextContent());
  |                                     }
  |                                     childNode = childNode.getNextSibling();
  |                             }
  |                             a = new 
BroadCastImpl(Integer.valueOf((String)keys.get("d0")),
  |                                             
Integer.valueOf((String)keys.get("d1")),
  |                                             
Integer.valueOf((String)keys.get("d2")),
  |                                             (String)keys.get("d19"),
  |                                             (String)keys.get("d20"),
  |                                             (String)keys.get("d21"),
  |                                             (String)keys.get("d23"),
  |                                             (String)keys.get("d22"));
  |                     }
  |                     //System.out.println(nodes.getLength());
  |             }catch (Exception e){
  |                     System.out.println(e);
  |             }       
  |             return a;
  |     }
  | 
  | }
  | 

View the original post : 
http://www.jboss.com/index.html?module=bb&op=viewtopic&p=3977907#3977907

Reply to the post : 
http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&p=3977907

_______________________________________________
jboss-user mailing list
jboss-user@lists.jboss.org
https://lists.jboss.org/mailman/listinfo/jboss-user

Reply via email to