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]

Reply via email to