Thanks Martin, here are some quick answers. ===== >what is the specific error you are getting?
[java] javax.naming.NoInitialContextException: Can't find property: java.naming.factory.initial [java] at javax.naming.spi.NamingManager.getInitialContext(java.util.Hashtable) (/lib/ssa/libgcj.so.4.0.0) [java] at javax.naming.InitialContext.getDefaultInitCtx() (/lib/ssa/libgcj.so.4.0.0) [java] at javax.naming.InitialContext.getURLOrDefaultInitCtx(java.lang.String) (/lib/ssa/libgcj.so.4.0.0) [java] at javax.naming.InitialContext.lookup(java.lang.String) (/lib/ssa/libgcj.so.4.0.0) [java] at za.co.solms.finance.calculators.LoanCalculatorPanel.connect() (Unknown Source) [java] at za.co.solms.finance.calculators.LoanCalculatorPanel.init() (Unknown Source) [java] at za.co.solms.finance.calculators.LoanCalculatorPanel.LoanCalculatorPanel() (Unknown Source) [java] at za.co.solms.finance.calculators.LoanCalculatorClient.LoanCalculatorClient() (Unknown Source) [java] at za.co.solms.finance.calculators.LoanCalculatorClient.main(java.lang.String[]) (Unknown Source) >which version of which AppServer are you deploying to? JBOSS 4.2.0.CR2 >we will need to see ejb-jar.xml <!DOCTYPE ejb-jar PUBLIC "-//Sun Microsystems, Inc.//DTD Enterprise JavaBeans 1.1//"http://java.sun.com/j2ee/dtds/ejb-jar_2_0.dtd"> <ejb-jar> <description>A calculator which calculates the amortization of a fixed rate loan at constant payments.</description> <display-name>LoanCalculator EJB</display-name> <enterprise-beans> <session> <ejb-name>LoanCalculator</ejb-name> <home>za.co.solms.finance.calculators.LoanCalculatorHome</home> <remote>za.co.solms.finance.calculators.LoanCalculator</remote> <ejb-class>za.co.solms.finance.calculators.LoanCalculatorBean</ejb-class> <session-type>Stateless</session-type> <transaction-type>Container</transaction-type> </session> </enterprise-beans> <assembly-descriptor> <container-transaction> <method> <ejb-name>LoanCalculator</ejb-name> <method-name>*</method-name> </method> <trans-attribute>Required</trans-attribute> </container-transaction> </assembly-descriptor> </ejb-jar> The java source where the problem occurs is the following: package za.co.solms.finance.calculators; import javax.naming.InitialContext; import javax.rmi.PortableRemoteObject; import swingwt.awt.*; import java.text.*; import java.util.*; import swingwtx.swing.*; import swingwt.awt.event.*; import javax.naming.Context; import java.util.Hashtable; import javax.naming.InitialContext; public class LoanCalculatorPanel extends JPanel { public LoanCalculatorPanel() {init();} public void init() { try { connect(); JPanel fieldsPanel = new JPanel(); fieldsPanel.setLayout (new GridLayout(4,3)); fieldsPanel.add(new JLabel("Loan amount: ")); fieldsPanel.add(loanAmountField); fieldsPanel.add(calcLoanAmountButton); fieldsPanel.add(new JLabel("Monthly installment: ")); fieldsPanel.add(installmentField); fieldsPanel.add(calcInstallmentButton); fieldsPanel.add(new JLabel("Loan period in months: ")); fieldsPanel.add(loanPeriodField); fieldsPanel.add(calcLoanPeriodButton); fieldsPanel.add(new JLabel("Interest Rate (%): ")); fieldsPanel.add(interestRateField); JPanel mainPanel = new JPanel(); mainPanel.add(fieldsPanel); add(mainPanel); calcLoanAmountButton.addActionListener (new ActionListener() { public void actionPerformed(ActionEvent event) { double installment = getDouble(installmentField); int loanPeriod = getInt(loanPeriodField); double interestRate = getDouble(interestRateField)/100; try { double loanAmount = loanCalculator.calcLoanAmount (installment, interestRate, loanPeriod); loanAmountField.setText (amountFormatter.format(loanAmount)); } catch (Exception e) { JOptionPane.showMessageDialog (LoanCalculatorPanel.this, e.toString(), e.getMessage(), JOptionPane.ERROR_MESSAGE); } } }); calcInstallmentButton.addActionListener (new ActionListener() { public void actionPerformed(ActionEvent event) { double loanAmount = getDouble(loanAmountField); int loanPeriod = getInt(loanPeriodField); double interestRate = getDouble(interestRateField)/100; try { double installment = loanCalculator.calcMonthlyInstallment (loanAmount, interestRate, loanPeriod); installmentField.setText (amountFormatter.format(installment)); } catch (Exception e) { JOptionPane.showMessageDialog (LoanCalculatorPanel.this, e.toString(), e.getMessage(), JOptionPane.ERROR_MESSAGE); } } }); calcLoanPeriodButton.addActionListener (new ActionListener() { public void actionPerformed(ActionEvent event) { double loanAmount = getDouble(loanAmountField); double installment = getDouble(installmentField); double interestRate = getDouble(interestRateField)/100; try { int loanPeriod = loanCalculator.calcLoanPeriodInMonths (loanAmount, installment, interestRate); loanPeriodField.setText(Integer.toString(loanPeriod)); } catch (Exception e) { JOptionPane.showMessageDialog (LoanCalculatorPanel.this, e.toString(), e.getMessage(), JOptionPane.ERROR_MESSAGE); } } }); } catch (Exception e) { JOptionPane.showMessageDialog(LoanCalculatorPanel.this, e.getMessage(), "Could not connect to session bean.", JOptionPane.ERROR_MESSAGE); e.printStackTrace(); System.exit(0); } } public double getDouble(JTextField textField) { try { return amountFormatter.parse (textField.getText(), new ParsePosition(0)).doubleValue(); } catch (NumberFormatException e) { JOptionPane.showMessageDialog (this, e.getMessage(), "Invalid input.", JOptionPane.ERROR_MESSAGE); return 0; } } public int getInt(JTextField textField) { try { return Integer.parseInt(textField.getText()); } catch (NumberFormatException e) { JOptionPane.showMessageDialog (this, e.getMessage(), "Invalid input.", JOptionPane.ERROR_MESSAGE); return 0; } } public void connect() { try { System.out.println("Now looking up session bean " + jndiName + " ..."); java.util.Hashtable properties = new java.util.Hashtable(); properties.put(Context.PROVIDER_URL,"localhost:1099"); properties.put(Context.INITIAL_CONTEXT_FACTORY,"org.jnp.interfaces.NamingContextFactory"); properties.put("java.naming.rmi.security.manager", "yes"); javax.naming.Context context = new javax.naming.InitialContext(properties); InitialContext jndiContext = new InitialContext(); System.out.println("Now looking up jndiContext " + jndiContext + " ..."); System.out.println("Now looking up context " + context + " ..."); /* System.out.println("Now looking up " + InitialContext + " ..."); */ Object beanHomeRef = jndiContext.lookup(jndiName); System.out.println("got it"); LoanCalculatorHome home = (LoanCalculatorHome)PortableRemoteObject.narrow (beanHomeRef, LoanCalculatorHome.class); loanCalculator = home.create(); } catch (Exception e) { JOptionPane.showMessageDialog(LoanCalculatorPanel.this, e.getMessage(), "Could not connect to session bean.", JOptionPane.ERROR_MESSAGE); e.printStackTrace(); System.exit(0); } } public void destroy() { try { loanCalculator.remove(); System.out.println("Removed session bean."); } catch (javax.ejb.RemoveException e) { System.out.println("Could not remove session bean."); } catch (java.rmi.RemoteException e) { System.out.println("Could not remove session bean."); } } private LoanCalculator loanCalculator; private JTextField loanAmountField = new JTextField(10); private JTextField installmentField = new JTextField(10); private JTextField interestRateField = new JTextField(10); private JTextField loanPeriodField = new JTextField(3); private JButton calcLoanAmountButton = new JButton("calculate"); private JButton calcInstallmentButton = new JButton("calculate"); private JButton calcLoanPeriodButton = new JButton("calculate"); private DecimalFormat amountFormatter = new DecimalFormat("###,###,###,##0.00"); private static final String jndiName = "ejb/LoanCalculator/local"; /* private static final String jndiName = "ejb/LoanCalculator/local"; */ private static final String jndiNameJoe = "local/ejb/LoanCalculator"; } -----Original Message----- From: Martin Gainty [mailto:[EMAIL PROTECTED] Sent: Sunday, October 12, 2008 11:56 PM To: Ant Users List Subject: RE: what does ant really use? Good Evening Joseph- what is the specific error you are getting? which version of which AppServer are you deploying to? if you are using EJB 2 (the default) we will need to see ejb-jar.xml Any or all Java Sources (just attach every java source file that extends EJBHome) how are you building the ear (assume either build.xml or pom.xml?) GlassFish has a ear builder and deployer in $GLASSFISH_HOME/GlassFish/Sun/AppServer/common-ant.xml that looks something like this: <property name="jarDD" value="ejb-jar.xml,sun-ejb-jar.xml"/> <!-- ======================================================= --> <!-- Assemble EJB JAR module. OLD WAY --> <!-- ======================================================= --> <target name="create_ejbjar_common_old" depends="clean_ejbjar_common"> <mkdir dir="${assemble.ejbjar}"/> <jar destfile="${assemble.ejbjar}/${ejbjar}"> <zipfileset dir="${build.classesdir}/${jar.pkg}/" includes="**/*.class" excludes="**/servlet/, **/client/" prefix="${jar.pkg}"/> <metainf dir="${jarDD.dir}" includes="${jarDD}"/> </jar> <!-- AEM NEEDED?copy file="${assemble.ejbjar}/${ejbjar}" tofile="../${ejbjar}"/>--> <property name="ejbjar.done" value="true"/> </target> <!-- ======================================================= --> <!-- Assemble CLIENT JAR module. OLD WAY --> <!-- ======================================================= --> <target name="clientjar_common" depends="clean_clientjar_common"> <mkdir dir="${assemble.clientjar}"/> <jar destfile="${assemble.clientjar}/${clientjar}" manifest="${clientDD.dir}/MANIFEST.MF"> <zipfileset dir="${build.classesdir}/${app.pkg}/" includes="**/*Client.class" excludes="**/servlet/" prefix="${app.pkg}"/> <metainf dir="${clientDD.dir}" includes="${clientDD}"/> </jar> <property name="clientjar.done" value="true"/> </target> Martin ______________________________________________ Disclaimer and confidentiality note Everything in this e-mail and any attachments relates to the official business of Sender. This transmission is of a confidential nature and Sender does not endorse distribution to any party other than intended recipient. Sender does not necessarily endorse content contained within this transmission. > From: [EMAIL PROTECTED] > To: user@ant.apache.org > Date: Sun, 12 Oct 2008 17:51:13 +0000 > Subject: RE: what does ant really use? > > Yes of course I have jdk 1.5.0_02 and JAVA_HOME is set too ... > > -----Original Message----- > From: Martin Gainty [mailto:[EMAIL PROTECTED] > Sent: Saturday, October 11, 2008 11:12 PM > To: Ant Users List > Subject: RE: what does ant really use? > > > it is assumed you already installed the JDK for your operating system > first..then set JAVA_HOME to the folder you installed > > without the JDK installation..any distro of ANT wont work > > http://java.sun.com/javase/downloads/index.jsp > > Martin Gainty > ______________________________________________ > Disclaimer and confidentiality note > Everything in this e-mail and any attachments relates to the official > business of Sender. This transmission is of a confidential nature and Sender > does not endorse distribution to any party other than intended recipient. > Sender does not necessarily endorse content contained within this > transmission. > > > > From: [EMAIL PROTECTED] > > To: user@ant.apache.org > > Date: Sat, 11 Oct 2008 20:14:47 +0000 > > Subject: RE: what does ant really use? > > > > Yes I am aware that there are symlinks, so I followed them to the point > > that I am almost 100% sure there was neither javac nor gcj on the system > > disk. So how can ant still compile? Does it have a "bundled" gcj ? > > > > -----Original Message----- > > From: John5342 [mailto:[EMAIL PROTECTED] > > Sent: Wednesday, October 08, 2008 11:58 AM > > To: Ant Users List > > Subject: Re: what does ant really use? > > > > If you changed the name of gcj and javac in /usr/bin they are not the > > actualy executables. They are only links to the real ones which in fedora > > (and probably RH) located in /usr/share/jvm/<java implementation>/bin/. In > > fedora (and again probably in RH) there is an "alternatives" application > > which allows you to choose which installed version of java you are using > > rather than renaming binaries. Should also warn you that although RH is > > supported longer than most and in general rock stable the software is often > > quite old because i happen to know that more recent versions of gcj support > > java 1.5. Hope this all helps you in the right direction. > > > > 2008/10/8 Pareti, Joseph <[EMAIL PROTECTED]> > > > > > > > > > > > > > > As a disclaimer, I am a true ant (and java) novice. Having said > > > that, I am confronted with a weird problem in a j2ee project which > > > fails at run time with a jndi error. After several investigations, > > > I am now almost convinced it has to do with the build process. > > > > > > I have jdk 1.5.0_02 installed on my system, x86/RHEL 3, kernel > > > 2.4; I am also using ant 1.5.2_23 > > > > > > My build log file shows, for each compile target the following message: > > > > > > [javac] Using gcj compiler > > > > > > Just for kicks, I then deleted gcj as well as javac (here I mean > > > the javac compiler executable) from my disk i.e. I renamed both of > > > them to something else, and ant still worked and still claimed > > > it's using gcj, which leaves me totally confused. > > > > > > Perhaps one hint; at the top of the log file I see the comment > > > "detected java version 1.4 in /usr". > > > > > > I know this is not what I want/need (it should be 1.5), so where > > > does it come from? > > > > > > I then went ahead setting the following property in my build.xml: > > > > > > <property name="build.compiler" value="modern"/> > > > > > > but this was quickly discarded: > > > > > > "Override ignored for property build.compiler" > > > which basically produced the same results as described above. I am > > > running out of ideas here. > > > > > > Thanks for any insights. > > > > > > > -------------------------------------------------------------------- > > - To unsubscribe, e-mail: [EMAIL PROTECTED] For > > additional commands, e-mail: [EMAIL PROTECTED] > > > > _________________________________________________________________ > Stay up to date on your PC, the Web, and your mobile phone with Windows Live. > http://clk.atdmt.com/MRT/go/msnnkwxp1020093185mrt/direct/01/ > > --------------------------------------------------------------------- > To unsubscribe, e-mail: [EMAIL PROTECTED] For additional > commands, e-mail: [EMAIL PROTECTED] > _________________________________________________________________ See how Windows connects the people, information, and fun that are part of your life. http://clk.atdmt.com/MRT/go/msnnkwxp1020093175mrt/direct/01/ --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]