cxf-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Daniel Kulp <dk...@apache.org>
Subject Re: Trying to Consume Jax WS Service
Date Mon, 08 Oct 2007 21:26:45 GMT

I hate classloaders.  :-(


What MAY work is to put:

Thread.currentThread().setContextClassLoader(CIPushReceive.class.getClassLoader());

at the start to make sure the contextClassLoader is set to a classloader 
that may actually contain the required classes.   I'm not really sure 
though.   :-(

Dan



On Monday 08 October 2007, Mattas, Tony wrote:
> I'm trying to use CXF to handle a Jax-WS service. CXF is running in a
> Web Application on JBoss (using quartz), while the Jax-WS service is
> running on Glassfish. This is my code to consume the service
>
>
>
> package com.stryker.cmf.cipush;
>
> import java.net.MalformedURLException;
>
> import java.net.URL;
>
> import java.sql.Connection;
>
> import java.sql.PreparedStatement;
>
> import java.sql.ResultSet;
>
> import java.sql.SQLException;
>
> import java.util.ArrayList;
>
> import java.util.Hashtable;
>
> import java.util.logging.Logger;
>
>
>
> import javax.xml.namespace.QName;
>
> import javax.xml.ws.Service;
>
>
>
> import org.quartz.Job;
>
> import org.quartz.JobExecutionContext;
>
> import org.quartz.JobExecutionException;
>
>
>
> import com.stryker.leibinger.db.ConnectionFactoryWrapper;
>
> import com.stryker.cmf.cipush.CIPushClass;
>
> import com.stryker.cmf.cipush.CIPushReceive;
>
>
>
> public class CIPushBean implements Job {
>
>
>
>       Logger _log = Logger.getLogger("CIPush");
>
>       private Connection connMako, connRock;
>
>
>
>       public void execute(JobExecutionContext context) throws
> JobExecutionException {
>
>             Hashtable<String, CIPushClass> allCustomers = new
> Hashtable<String, CIPushClass>();
>
>             ArrayList<String> pushCustomerFilter = new
> ArrayList<String>();
>
>             ArrayList<CIPushClass> pushCustomers = new
> ArrayList<CIPushClass>();
>
>             CIPushClass customer;
>
>             String queryMako, queryRock;
>
>             PreparedStatement psMako, psRock;
>
>             ResultSet rsMako, rsRock;
>
>             int result = 0;
>
>             _log.info("***Starting CIPush Job");
>
>             connMako = ConnectionFactoryWrapper.getConnection("mako");
>
>             connRock =
> ConnectionFactoryWrapper.getConnection("sqlServer");
>
>             queryMako = "SELECT c.custnum, c.shipnum, c.custname,
> c.address1, c.address2, c.addressx,"
>
>                                     + " c.city, c.state, c.zipcode,
> c.regnnum, c.terrnum, c.srepnum, f.forcedesc,"
>
>                                     + " r.regndesc, t.terrname,
> t.srepname"
>
>                                     + " FROM sislib.macmt100 c"
>
>                                     + " JOIN sislib.sfcrt100 f ON
> c.compnum = f.compnum AND c.regnnum = f.regnnum"
>
>                                     + " JOIN sislib.margt100 r ON
> c.compnum = r.compnum AND c.divnnum = r.divnnum"
>
>                                     + " AND c.regnnum = r.regnnum"
>
>                                     + " JOIN sislib.matrt100 t ON
> c.compnum = t.compnum AND c.divnnum = t.divnnum"
>
>                                     + " AND c.regnnum = t.regnnum AND
> c.terrnum = t.terrnum AND c.srepnum = t.srepnum"
>
>                                     + " WHERE c.compnum = 18 AND
> c.divnnum = c.compnum AND c.active = '1'"
>
>                                     + " AND c.regnnum NOT IN (0, 96,
> 97, 99) AND c.custnum < 700000"
>
>                                     + " ORDER BY c.regnnum, c.custnum,
> c.shipnum";
>
>             queryRock = "SELECT * FROM ciPush";
>
>             try {
>
>                   _log.info("***Fetching Database information");
>
>                   psMako = connMako.prepareStatement(queryMako);
>
>                   psRock = connRock.prepareStatement(queryRock);
>
>                   rsMako = psMako.executeQuery();
>
>                   rsRock = psRock.executeQuery();
>
>                   while (rsMako.next()) {
>
>                         customer = new CIPushClass();
>
>                         customer.setCustnum(rsMako.getInt(1));
>
>                         customer.setShipnum(rsMako.getInt(2));
>
>                         customer.setCustname(rsMako.getString(3));
>
>                         customer.setAddress1(rsMako.getString(4));
>
>                         customer.setAddress2(rsMako.getString(5));
>
>                         customer.setAddressx(rsMako.getString(6));
>
>                         customer.setCity(rsMako.getString(7));
>
>                         customer.setState(rsMako.getString(8));
>
>                         customer.setZipcode(rsMako.getString(9));
>
>                         customer.setRegnnum(rsMako.getInt(10));
>
>                         customer.setTerrnum(rsMako.getInt(11));
>
>                         customer.setSrepnum(rsMako.getInt(12));
>
>                         customer.setForcedesc(rsMako.getString(13));
>
>                         customer.setRegdesc(rsMako.getString(14));
>
>                         customer.setTerrname(rsMako.getString(15));
>
>                         customer.setSrepname(rsMako.getString(16));
>
>                         allCustomers.put(customer.getCustnum() + "-" +
> customer.getShipnum(), customer);
>
>                   }
>
>                   while (rsRock.next()) {
>
>                         pushCustomerFilter.add(rsRock.getString(1));
>
>                   }
>
>                   psMako.close();
>
>                   rsMako.close();
>
>                   psRock.close();
>
>                   rsRock.close();
>
>             } catch (SQLException e) {
>
>                   e.printStackTrace();
>
>             }
>
>             for (String key: pushCustomerFilter) {
>
>                   _log.info("***Adding customers to push");
>
>                   customer = allCustomers.get(key);
>
>                   pushCustomers.add(customer);
>
>                   _log.info("Customer" +
> allCustomers.get(key).toString());
>
>             }
>
>             _log.info("***Attempting to push " + pushCustomers.size()
> + " customers");
>
>             for (CIPushClass pushCustomer : pushCustomers) {
>
>                   try {
>
>                         URL wsdlURL = new
> URL("http://localhost:8080/CIPushReceive/CIPushReceiveService?wsdl");
>
>                         QName SERVICE_NAME = new
> QName("http://cipush.cmf.stryker.com/" , "CIPushReceiveService");
>
>                         Service service = Service.create(wsdlURL,
> SERVICE_NAME);
>
>                         CIPushReceive client =
> service.getPort(CIPushReceive.class);
>
>                         client.pushAccounts("blah", pushCustomer);
>
>                   }
>
>                   catch (MalformedURLException e)
>
>                   {
>
>                         e.printStackTrace();
>
>                   }
>
>             }
>
>
>
>             _log.info("***Customer Push Complete, pushed " + result +
> " accounts.");
>
>             ConnectionFactoryWrapper.close(connMako);
>
>             ConnectionFactoryWrapper.close(connRock);
>
>       }
>
>
>
> }
>
>
>
>
>
>
>
> When using it I get this stack trace
>
>
>
> ava.lang.NoClassDefFoundError: com/stryker/cmf/cipush/CIPushReceive
>
>       at
> com.stryker.cmf.cipush.CIPushBean.execute(CIPushBean.java:106)
>
>       at org.quartz.core.JobRunShell.run(JobRunShell.java:202)
>
>       at
> org.quartz.simpl.SimpleThreadPool$WorkerThread.run(SimpleThreadPool.ja
>va
>
> :529)
>
> 15:26:08,150 ERROR [ErrorLogger] Job (CI.CIPushJob threw an exception.
>
> org.quartz.SchedulerException: Job threw an unhandled exception. [See
> nested exception: java.lang.NoClassDefFoundError:
> com/stryker/cmf/cipush/CIPushReceive]
>
>       at org.quartz.core.JobRunShell.run(JobRunShell.java:213)
>
>       at
> org.quartz.simpl.SimpleThreadPool$WorkerThread.run(SimpleThreadPool.ja
>va
>
> :529)
>
> Caused by: java.lang.NoClassDefFoundError:
> com/stryker/cmf/cipush/CIPushReceive
>
>       at
> com.stryker.cmf.cipush.CIPushBean.execute(CIPushBean.java:106)
>
>       at org.quartz.core.JobRunShell.run(JobRunShell.java:202)
>
>       ... 1 more
>
>
>
>
>
> CIPushReceive is the name of the Jax-WS service running in glassfish,
> and I have included that on the classpath for the consumer, however no
> such luck. Any suggestions?
>
>
>
> Tony Mattas
>
> IS Intern
>
>
>
> Stryker Craniomaxillofacial
>
> 750 Trade Centre Way
>
> Suite 200
>
> Portage, MI 49002
>
>
>
> p: 269.324.5346 x 4306
>
> e: tony.mattas@stryker.com
>
> MySharepoint
> <http://mysharepoint.stryker.com/Person.aspx?accountname=LEIBINGER%5FU
>S% 5Ctony%2Emattas>



-- 
J. Daniel Kulp
Principal Engineer
IONA
P: 781-902-8727    C: 508-380-7194
daniel.kulp@iona.com
http://www.dankulp.com/blog

Mime
View raw message