Array
(
)

Erro de deploy

Nilo Souza
   - 13 dez 2010

Colega, sou novo no java e estou fazendo umas videos aulas, o que pega  é que geralmente da erro não sei (ou sabemos) como consertar.
O erro é o seguinte:

init:
deps-module-jar:
deps-ear-jar:
deps-jar:
library-inclusion-in-archive:
library-inclusion-in-manifest:
compile:
compile-jsps:
In-place deployment at C:\Devmedia\EcommerceDevmedia\build\web

Initializing...
deploy?path=C:\Devmedia\EcommerceDevmedia\build\web&name=EcommerceDevmedia&force=true failed on GlassFish Server 3
C:\Devmedia\EcommerceDevmedia\nbproject\build-impl.xml:684: The module has not been deployed.
BUILD FAILED (total time: 7 seconds)

Alguém poderia me dar uma ajuda de como consertar esse erro?
Obrigado!

Davi Costa
   - 14 dez 2010

Cara, contextualiza um pouco mais,
acontece as vezes, ou não está conseguindo levantar a aplicação de jeito nenhum?
As vezes quando alteramos algum código com o servidor do glassfish no ar, ele dá esse tipo de erro.
Basta quando ele acontecer ir sempre dando um clean no projeto.

Att Davi

0
|
0

Nilo Souza
   - 14 dez 2010

Acontece que quando eu mando rodar a aplicação ao inves de aparecer a mensagem de boas vindas o firefox
aparece essa que te enviei.
Começando do zero, quando mandava rodar de uma mensagem que o glasfish estava com falha, ai troquei para a porta 51399 e o glasfish conectou, mas ao fazer essa segunda parte, deu esse erro e não gerou nenhuma entidade (tabela) no meu schema.

0
|
0

Dyego Carmo
   - 27 dez 2010

Cole aqui a saida do console do servidor de aplicação...

esta saida que voce colou é do aplicativo ! preciso saber o que ocorre no servidor (possivelmente a aba do lado)

0
|
0

Nilo Souza
   - 27 dez 2010

Ola Dyego, 

o erro abaixo esta postado na aula 16 do curso de loja virtual, copiei e colei para vc conforme pediu.

Um abraço



Abaixo o erro do glasfish
19/12/2010 23:50:46 com.sun.enterprise.glassfish.bootstrap.ASMain main
INFO: Launching GlassFish on Felix platform
Welcome to Felix

0
|
0

Robson Teixeira
   - 02 jan 2011

A anotação mappedSuperClass deve ser usada na superclasse de suas entidades ou de todas as suas entidades do sistema e a classe com a mappedSuperClass não deve ser entidade.Remova a anotação e teste se não funfar poste aqui as classes CreditCard e a Sell que são apontadas pelo stackTrace.Ahh antes que eu esqueça reveja como você as relacionou também.

Att
  Robson Passarella

0
|
0

Dyego Carmo
   - 11 jan 2011

Opa !

Resolvido ?

0
|
0

Nilo Souza
   - 11 jan 2011

Ainda não, acontece o mesmo erro!

0
|
0

Robson Teixeira
   - 11 jan 2011

Olá NSouza
  você removeu a anotação MappedSuperClass das suas entidades?? Pois no stackTrace e apontado ela como a causa do erro.
 Verifique também as entidades CreditCard e Sell pois tem algum erro na relação entre elas verifique , corriga  e teste se não funcionar post aqui a CreditCard e Sell.

0
|
0

Robson Teixeira
   - 11 jan 2011

Complementando
  The attribute [sells] in entity class [class br.com.devmedia.entity.CreditCard] has a mappedBy value of [creditcard] which does not exist in its owning entity class [class br.com.devmedia.entity.Sell]. If the owning entity class is a @MappedSuperclass, this is invalid, and your attribute should reference the correct subclass.

Att
  Robson Passarella

0
|
0

Nilo Souza
   - 15 jan 2011

Devido minha falta de experiencie, revi as aulas mas não consegui acertar a classe até tive uma noção do que vc falo sobre o erro, mas desculpe não encontrei. Postei as duas classes, poderia dar uma olhada para mim por favor?

CREDITCARD

package br.com.devmedia.entity;

import br.com.devmedia.entity.Types.FlagType;
import java.io.Serializable;
import java.util.Date;
import java.util.LinkedList;
import javax.persistence.Basic;
import javax.persistence.CascadeType;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.EnumType;
import javax.persistence.Enumerated;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToOne;
import javax.persistence.OneToMany;
import javax.persistence.Table;
import javax.persistence.Temporal;
import javax.validation.Valid;
import javax.validation.constraints.Min;
import javax.validation.constraints.NotNull;
import org.hibernate.validator.constraints.NotEmpty;

/**
 *
 * @author Nilo
 */
@Entity
@Table
public class CreditCard implements Serializable {
    private static final long serialVersionUID = 1L;
    @Id
    @GeneratedValue(strategy = GenerationType.AUTO)
    @Column
    @Basic(optional=false)
    private Integer id;
   
    @NotEmpty
    @NotNull
    @Column(nullable=false)
    private String number;
        
    @Temporal(javax.persistence.TemporalType.DATE)
    @Column(nullable=false)
    @NotNull
    private Date dateOfValidation;
   
    @Column(nullable=false)
    @NotNull
    @NotEmpty
    private String nameOfCard;
   
    @Column(nullable=false)
    @Enumerated(EnumType.STRING)
    private FlagType flag;

    @Column(nullable=false)
    @Min(1)
    private int times;

    @JoinColumn(referencedColumnName="id")
    @ManyToOne(optional=false)
    @Valid
    private User userOf;

    @OneToMany(cascade=CascadeType.ALL,mappedBy="creditcard")
    private LinkedList<Sell> sells = new LinkedList<Sell>();

    public int getTimes() {
        return times;
    }

    public void setTimes(int times) {
        this.times = times;
    }
   
   
   
    public Integer getId() {
        return id;
    }

    public void setId(Integer id) {
        this.id = id;
    }

    public Date getDateOfValidation() {
        return dateOfValidation;
    }

    public void setDateOfValidation(Date dateOfValidation) {
        this.dateOfValidation = dateOfValidation;
    }

    public FlagType getFlag() {
        return flag;
    }

    public void setFlag(FlagType flag) {
        this.flag = flag;
    }

    public String getNameOfCard() {
        return nameOfCard;
    }

    public void setNameOfCard(String nameOfCard) {
        this.nameOfCard = nameOfCard;
    }

    public String getNumber() {
        return number;
    }

    public void setNumber(String number) {
        this.number = number;
    }

    public User getUserOf() {
        return userOf;
    }

    public void setUserOf(User userOf) {
        this.userOf = userOf;
    }

    public LinkedList<Sell> getSells() {
        return sells;
    }

    public void setSells(LinkedList<Sell> sells) {
        this.sells = sells;
    }

    @Override
    public int hashCode() {
        int hash = 0;
        hash += (id != null ? id.hashCode() : 0);
        return hash;
    }

    @Override
    public boolean equals(Object object) {
        // TODO: Warning - this method won't work in the case the id fields are not set
        if (!(object instanceof CreditCard)) {
            return false;
        }
        CreditCard other = (CreditCard) object;
        if ((this.id == null && other.id != null) || (this.id != null && !this.id.equals(other.id))) {
            return false;
        }
        return true;
    }

    @Override
    public String toString() {
        return "br.com.devmedia.entity.CreditCard[id=" + id + "]";
    }

}

CLASSE SELL

package br.com.devmedia.entity;

import br.com.devmedia.entity.Types.StatusSellType;
import java.io.Serializable;
import java.math.BigDecimal;
import java.util.Date;
import java.util.LinkedList;
import java.util.List;
import javax.persistence.Basic;
import javax.persistence.CascadeType;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.EnumType;
import javax.persistence.Enumerated;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToOne;
import javax.persistence.OneToMany;
import javax.persistence.Table;
import javax.persistence.Temporal;
import javax.validation.Valid;
import javax.validation.constraints.Min;
import javax.validation.constraints.NotNull;

/**
 *
 * @author Nilo
 */
@Entity
@Table
public class Sell implements Serializable {
    private static final long serialVersionUID = 1L;
    @Id
    @GeneratedValue(strategy = GenerationType.AUTO)
    @Column
    @Basic(optional=false)
    private Integer id;

    @NotNull
    @Enumerated(EnumType.STRING)
    @Column(nullable=false)
    private StatusSellType status = StatusSellType.START;
   
    @NotNull
    @Temporal(javax.persistence.TemporalType.DATE)
    @Column(nullable=false)
    private Date dateOfSell;
   
    @NotNull
    @Min(0)
    @Column(nullable=false)
    private BigDecimal total;

    @NotNull
    @JoinColumn(referencedColumnName="id")
    @ManyToOne(optional=false)
    @Valid
    private User userOf;

    @NotNull
    @JoinColumn(referencedColumnName="id")
    @ManyToOne(optional=false)
    @Valid
    private Address addressToSend;

    @NotNull
    @JoinColumn(referencedColumnName="id")
    @ManyToOne(optional=false)
    @Valid
    private CreditCard creditCard;

    @OneToMany(cascade=CascadeType.ALL,mappedBy="sell")
    private List<SellItem> sellItems = new LinkedList<SellItem>();

    @Column
    private boolean closed = false;

    public void addItem(SellItem item){
        item.setSell(this);
        getSellItems().add(item);
        if (total == null){
            total = item.getProduct().getCost();
        }else{
            total.add(item.getProduct().getCost());
        }
    }

    public void setClosed(boolean closed) {
        this.closed = closed;
    }

    public Integer getId() {
        return id;
    }

    public void setId(Integer id) {
        this.id = id;
    }

    public Address getAddressToSend() {
        return addressToSend;
    }

    public void setAddressToSend(Address addressToSend) {
        this.addressToSend = addressToSend;
    }

    public CreditCard getCreditCard() {
        return creditCard;
    }

    public void setCreditCard(CreditCard creditCard) {
        this.creditCard = creditCard;
    }

    public Date getDateOfSell() {
        return dateOfSell;
    }

    public void setDateOfSell(Date dateOfSell) {
        this.dateOfSell = dateOfSell;
    }

   public List<SellItem> getSellItems() {
        return sellItems;
    }

    public void setSellItems(List<SellItem> sellItems) {
        this.sellItems = sellItems;
    }

    public StatusSellType getStatus() {
        return status;
    }

    public void setStatus(StatusSellType status) {
        this.status = status;
    }

    public BigDecimal getTotal() {
        return total;
    }

    public void setTotal(BigDecimal total) {
        this.total = total;
    }

    public User getUserOf() {
        return userOf;
    }

    public void setUser(User userOf) {
        this.userOf = userOf;
    }

    @Override
    public int hashCode() {
        int hash = 0;
        hash += (id != null ? id.hashCode() : 0);
        return hash;
    }

    @Override
    public boolean equals(Object object) {
        // TODO: Warning - this method won't work in the case the id fields are not set
        if (!(object instanceof Sell)) {
            return false;
        }
        Sell other = (Sell) object;
        if ((this.id == null && other.id != null) || (this.id != null && !this.id.equals(other.id))) {
            return false;
        }
        return true;
    }

    @Override
    public String toString() {
        return "br.com.devmedia.entity.Sell[id=" + id + "]";
    }

}

0
|
0

Robson Teixeira
   - 16 jan 2011

Olá NSouza
  
   Olhei as suas classes CreditCard e Sell notei o seguinte na annotation OneToMany o atributo mappedBy deve receber a String com o nome do atributo na classe onde está sendo relacionada, veja abaixo
  // classe CreditCard
    @OneToMany(cascade=CascadeType.ALL,mappedBy="creditcard")
    private LinkedList<Sell> sells = new LinkedList<Sell>();
// classe Sell
    @NotNull
    @JoinColumn(referencedColumnName="id")
    @ManyToOne(optional=false)
    @Valid
    private CreditCard creditCard;

na sua lista sells o atributo mappedBy recebe "creditcard" e o declarado na classe Sell e "creditCard" corrija e diga-nos se funcionou.
 
 att
   robson Passarella Teixeira

0
|
0

Nilo Souza
   - 17 jan 2011

Caro Robson, acima de tudo quero deixar evidente minha gratidão pela sua atenção.

Corrigi a falha que para mim era um "monstro" deu certo surgiram as mensagens:

BUILD SUCCESSFUL (total time: 1 minute 3 seconds) e no firefox Hello from Facelets
acho que é evidencia de que aquele erro foi resolvido.

No glassfish apareceu a extensa mensagem que nao sei de novo onde esta o erro, mas  pelo que percebi deve ser alguma configuração, abaixo o extenso codigo de erro, por favor gostaria de sua ajuda de novo.

17/01/2011 19:38:21 com.sun.enterprise.glassfish.bootstrap.ASMain main
INFO: Launching GlassFish on Felix platform
Welcome to Felix

0
|
0

Robson Teixeira
   - 17 jan 2011

Olá NSouza

  você setou o driver do mysql no classpath de sua applicação??
  é o que se pode entender no stackTrace postado.
  se vc estiver trocando o banco de dados da aplicação que nem os videos do Dyego verifique o sun-resource.xml.

att
  robson Passarella Teixeira

0
|
0

Nilo Souza
   - 17 jan 2011

Eu gosto de trabalhar com o postgresql não sou fã do mysql.
nesse caso o que devo fazer?

0
|
0

Robson Teixeira
   - 17 jan 2011

Olá NSouza
 
   Sete o driver do postGres na sua aplicação e segue 1 modelo do sun-resouces.xml para que a sua aplicação acesse o postgres.Pois nunca lembro as classes para colocar no xml.

  <resources>
    <jdbc-connection-pool allow-non-component-callers="false" associate-with-thread="false"
    connection-creation-retry-attempts="0" connection-creation-retry-interval-in-seconds="10"
    connection-leak-reclaim="false" connection-leak-timeout-in-seconds="0"
    connection-validation-method="auto-commit" datasource-classname="org.postgresql.ds.PGSimpleDataSource"
    fail-all-connections="false" idle-timeout-in-seconds="300" is-connection-validation-required="false"
    is-isolation-level-guaranteed="true" lazy-connection-association="false" lazy-connection-enlistment="false"
    match-connections="false" max-connection-usage-count="0" max-pool-size="32" max-wait-time-in-millis="60000"
    name="ecommerce_postgres" non-transactional-connections="false" pool-resize-quantity="2" res-type="javax.sql.DataSource"
    statement-timeout-in-seconds="-1" steady-pool-size="8" validate-atmost-once-period-in-seconds="0" wrap-jdbc-objects="false">
        <property name="serverName" value="localhost"/>
        <property name="portNumber" value="5432"/>
        <property name="databaseName" value="ecommerce"/>
        <property name="User" value="postgres"/>
        <property name="Password" value="postgres"/>
        <property name="URL" value="jdbc:postgresql://localhost:5432/ecommerce"/>
        <property name="driverClass" value="org.postgresql.Driver"/>
    </jdbc-connection-pool>
    <jdbc-resource enabled="true" jndi-name="jdbc/ecommerce" object-type="user"
    pool-name="ecommerce_postgres"/>
</resources>

att

  Robson Passarella Teixeira

0
|
0

Nilo Souza
   - 17 jan 2011

Caro Robson, tentarei e te darei um retorno!
Bom descanso
Nilo Souza

0
|
0

Nilo Souza
   - 18 jan 2011

Robson boa noite,
colei o codigo que vc deu de exemplo, o glassfish de o erro abaixo. Me desculpe por colocar esse codigo imenso, mas é que não sei que parte colar  para vc analisar.

A aplicação parece que foi executada com sucesso olhe o codigo abaixo

init:
deps-module-jar:
deps-ear-jar:
deps-jar:
library-inclusion-in-archive:
library-inclusion-in-manifest:
compile:
compile-jsps:
In-place deployment at /home/nsouza/NetBeansProjects/EcommerceDevmedia/build/web
Initializing...
run-deploy:
Browsing: http://localhost:8080/EcommerceDevmedia/
run-display-browser:
run:
BUILD SUCCESSFUL (total time: 8 seconds)

Erro do glassfish

18/01/2011 21:17:34 com.sun.enterprise.glassfish.bootstrap.ASMain main
INFO: Launching GlassFish on Felix platform
Welcome to Felix

0
|
0

Robson Teixeira
   - 18 jan 2011

Olá Nilo
  como você copiou o sun-resouce.xml você verificou se o netBeans criou o pool de conexão é o jndi  no glassFish???
  Qualquer coisa compare com o meu e veja as diferenças com o seu sun-resouce.xml que passei e veja o seu, para ver o diferente dei 1 olhada nuns arquivos, meus e vi outra vei as video-aulas do Dyego e vi que trocou o datasource-classname, os property do xml para apontar o banco diferente e mantendo o jndi-name  pool-name teste isso e de o retorno ok!

att
  Robson Passarella Teixeira

0
|
0

Nilo Souza
   - 19 jan 2011

Como verifico se o netBeans criou o pool de conexão é o jndi  no glassFish???

O que percebi foi que quando copiei e colei seu codigo deu uns erros, mas depois fui verificar no servidor e as tabelas estavam todas criadas no banco de dados postgres, coisa que não fez quando estava fazendo as video aulas no windows  pois agora estou no linux.

0
|
0

Robson Teixeira
   - 20 jan 2011

Oi Nilo

  tem 2 opções para ver isso.
  1º   no NetBeans na aba Serviços você clica em servidores para ver os sevidores que você adicionou no IDE como o JBoss e o glassFish e quando o glassfish estiver iniciado clique no simbolo de '+' do lado do glassfish para mostrar as opções ,clique em recursos onde ele vai mostrar as opções JDBC,Conectores e Sessões JavaMail.Clique na opção JDBC e vai mostrar mais 2 opções a Recursos JDBC (JNDI) e o pool de conexão abrindo elas você ver se existe no glassFish o pool de conexão e o jndi apontados no sun-resources.xml.

  2º Quando o glassFish estiver Iniciado você entra no browser http://localhost:4848 do lado esquerdor você vai ver um menu e verá Recursos e dentro de recursos a opção JDBC e clicando em JDBC o resto vai ser igual da opção acima so vai ter 1 tela bonitinha.XD

e com relação ao fato de ter criando as tabelas no linux e não no windows realmente fiquei na duvida pois era para criado as tabelas nos 2 SO e sem da erros no log isso e estranho vou da 1 pesquisado e fazer uns testes no linux pois fiquei curioso.

Assim que possivel tento dar 1 retorno OK?

e verifique se criou o jndi,pool conexão e se o persistence.xml da aplicação se está apontando para o jndi desejado.

att
  robson Passarella

0
|
0